一步步做程式優化 2 OpenACC指令

2021-08-27 02:28:44 字數 852 閱讀 5338

這個寫了很長時間了,但是一直沒有顧上額。把這個版本稍微修改一下,只需要加上乙個指令,我們就可以得到不錯的效率奧。

看**吧:

// c = alpha*a*b + beta*c

void mysgemm(int m, int n, int k, float alpha, float beta,\

float *a, float *b, float *c)

c[j*k+i] = alpha*ab + beta*c[j*k+i];

} }}

我之前講過hmpp編譯器的安裝和使用,大家可以使用hmpp編譯器編譯這段**,在linux下(安裝好cuda,hmpp之後)我們可以使用一下命令編譯:

$hmpp --codelet-required gcc your_program.c

執行一下,你會發現速度相當的快了(你要有支援cuda的顯示卡才行奧)

為了得到更高的效率,我修改一下這個**:

// c = alpha*a*b + beta*c

void mysgemm(int m, int n, int k, float alpha, float beta,\

float *a, float *b, float *c)

c[j*k+i] = alpha*ab + beta*c[j*k+i];

} }}

這樣a和b兩個矩陣就可只是傳輸到gpu上,而c傳到gpu,計算結束後會倍傳回來。

在copy()中,a[0:m*n],表示從第0個元素一共計算m*n個元素,第乙個是起始位置,第二個量表示資料長度。

大家把**拷貝走,去試試吧!!!

教你一步步啟動程式

今天介紹一下專案的啟動流程,專案主要分為前端 和後台 兩個部分,下面以專案名稱為 product 舉例 我們存放前端 的資料夾為 product web 存放後台 的資料夾為 product server 啟動前提 1.已安裝nodejs和npm管理工具,並設定全域性變數 2.輸入命令行時必須確保在...

楊輝三角程式(一步步優化)

楊輝三角相信大家都不陌生吧。鄙人不才,對於這個程式從最簡單的一步步優化,優化了6步。如下 一 最簡單的最容易想到的方法,我就不多說吧,看 可以看懂的。include main while n 1 n 16 for i 0 i二 從 一優化而來,將二維陣列arr初始化為0變為初始化為1,將列印第一列全...

一步步學ROS

最近因為看svo的 裡面用到catkin決定要好好看ros,年前學會基本操作。啟動節點 rosrun package name executable name 檢視節點 rosnode list 注 rosout 節點是乙個特殊的節點,通過 roscore 自動啟動 檢視特定節點的資訊 rosnod...