這個寫了很長時間了,但是一直沒有顧上額。把這個版本稍微修改一下,只需要加上乙個指令,我們就可以得到不錯的效率奧。
看**吧:
// 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...