】
很早就知道gpu可以被用來進行加速處理,但是不知道基本原理是什麼。昨天看了一下別人的示範**,突然之間明白了很多。為了防止自己忘記這些知識點,特地做如下紀錄。
1、顯示卡程式設計
gpu主要是指顯示卡上的處理器部分。顯示卡和cpu之間主要通過pci或者pcie連線,所以必然要求生成的可執行檔案一部分在host執行、一部分在gpu執行。
2、cuda檔案格式
一般以cu作為字尾。
3、cuda的構成
cuda和基本的c語言檔案沒有差別,只是需要注意的是,那些標記為__global的函式才是真正在gpu上執行的**。
4、cuda和mpi關係
mpi主要是intel利用cpu併發執行的lib,cuda則是利用gpu執行的庫。
5、cuda怎麼編譯
建議用nvidia提供的nvcc進行編譯。
6、asic、fpga、cpu、gpu加速
機器學習要求我們必須窮盡各種加速方法。asic側重於controller加速、表現在編譯碼、加密方面。fpga可用於特定的演算法處理,雖然效果最好,但是成本最高。cpu加速最簡單,但是成本不好控制、編寫有難度。gpu是次優於cpu的方法,它可以降低cpu的負擔,又可以承擔一定的計算任務。
7、cuda 與linux
隨著tensorflow的流行,cuda也被用於深度學習。一般cuda和ubuntu配合比較多,建議大家多多學習。
8、示例**,參考鏈結
9、nvidia教程
基本**形式如下所示,特別是這個__global__關鍵字非常重要,它代表是在gpu上面執行的**
// kernel definition
__global__ void vecadd(float* a, float* b, float* c)
int main()
ps:
cuda主要用來進行演算法加速優化使用,常用於影象,當然使用到矩陣、傅利葉變換的地方都可以使用,這是使用比較多的乙個場景。
另外乙個關於cuda的教程,可以參考這個
如果想知道cuda的歷史和來龍去脈,那麼這個鏈結不錯,
軟體隨想錄
最近閱讀了由阮一峰翻譯的,有程式設計師部落酋長之稱的 joel 撰寫的 軟體隨想錄 精華摘抄如下 就如同所有行業最好的人才一樣,那些優秀的程式設計師是不會出現在招聘市場的。通常優秀的程式設計師在整個職業生涯中,可能會有4次求職。實習生制度創造了輸送優秀人才的管道,但是這個管道比較長,而且一路上損耗很...
專案隨想錄
發現自己不怎麼會起題目了。中午回去還沒走到寢室,就接到劉老師的 說要把程式調通,於是中午吃完飯立馬跑回去,把顯示問題解決了。其實那個無效數字問題是因為在hql語句中使用了cast pw as integer 將字串轉成integer型,可是資料庫中的內容程式設計了字母加數字,自然會轉換失敗了,唉,真...
雜文 隨想錄
這裡是一些隨想。關於名為二氫婦女的使用者本人,希望 ta 能有乙個美好的未來。科學雖然給我們許多驚奇,但也攪壞了我們許多好夢。當登上了月球的那一刻,一切有關月的夢都被現實的蒼涼所破碎了。從那一步邁出起,廣寒宮破碎,輝夜姬亦未曾回到月上,阿爾忒彌斯丟失了金弓與駕月之車,一切有關月的神話於此失去光輝,人...