從0開始學習cuda和caffe原始碼閱讀

2021-08-08 21:22:20 字數 1995 閱讀 7483

cuda是使用nvidia顯示卡進行並行運算的一種方式,目前經常被用於加速深度學習。

cuda安裝相關文件:

在cuda安裝完畢以後,cuda會生成cuda samples,這些是cuda的一些例子,windows預設目錄在c:\programdata\nvidia corporation\cuda samples。ubuntu和mac下設定完環境變數以後,可以使用cuda-install-samples-8.0.sh(8.0版本的cuda)來安裝例子。

caffe is a deep learning framework, originally developed at uc berkeley. it is open source, under a bsd license. it is written in c++, with a python inte***ce. -[ 維基百科 ]

caffe是目前比較火的深度學習加速框架,主要採用了cuda進行加速。

caffe官網:

caffe安裝:installation.html

建議在ubuntu下使用caffe,因為可以直接apt-get:sudo apt install caffe-cuda

學習文件:

主要介紹了cuda的程式設計模式,和基本的gpu架構

cuda並行程式設計:gpu程式設計指南(cuda parallel programming: gpu programming guide)

推薦閱讀原始碼:在cuda目錄下的,0_******/matrixmul, vectoradd, ******streams, ******templates, ******zerocopy, unifiedmemorystreams, ******multicopy

階段目標:基本理解gpu的運算方式,能用cuda寫出一些簡單的運算,了解gpu和cpu之間memory的拷貝方式,了解gpu的global memory,shared memory的區別和使用方式,了解cuda stream。

學習文件:

cuda範例精簡(cuda by example)

gpu高效能程式設計cuda實戰( cuda by example: an introduction to general-purpose gpu programming)

階段目標:了解gpu的運作方式,理解tiled-based優化方法,理解gpu中各個引數對程式執行效率的影響,理解gpu在面對分支操作時的執行方式。

學習文件:cublas:

curand:

cusparse:

thrust:

cudnn:

推薦原始碼閱讀:0_******/matrixmulcublas, 7_cudalibraries下部分**

caffe原始碼(主要是用了cublas和cudnn兩個庫)

學習文件:

nvprofiler是乙個非常好的,擁有圖形介面的profile工具,使用起來也非常方便,在ubuntu下只需要nvprof ./[exec]的形式就能進行簡單的效能分析,複雜的效能分析需要借助nsight軟體進行分析。

階段目標:學會使用nvprof工具分析cuda程式的效能,能夠觀察到kernel的執行時間軸,分析cache miss/hit率,明白cuda程式的瓶頸所在,是運算密集型還是訪存密集型,訪存上cache的hit率能不能進一步提高,等等。

學習文件:

階段目標:理解匯程式設計序在gpu上的執行方式,學會寫內嵌ptx程式。用ptx指令進行優化

cafe主要的計算部分的原始碼位置為:

caffe原始碼分析未完待續

機器學習 從0開始

by 香蕉麥樂迪 機器學習簡介 機器學習是許多演算法的統稱,其中包含最近幾年火熱的深度學習,還包括許多適用於各種不同場景的其他機器學習演算法 邏輯斯特回歸,svm,knn,adaboost,em,kmeans等等 這些演算法從誕生到現在都有了幾十年的歷史 深度學習指的是深度神經網路,其中用於處理影象...

openGLSL從0開始學習

首先,找了些優秀的學習 openglsl 雙緩衝 double buffer 機制 01 20getting 20started 03 20hello 20window opengl 三角形 01 20getting 20started 04 20hello 20 opengl shading la...

從0開始 二

slam是指當某種移動裝置 如機械人 無人機 手機等 從乙個未知環境裡的未知地點出發,在運動過程中通過感測器 如雷射雷達 攝像頭等 觀測定位自身位置 姿態 運動軌跡,再根據自身位置進行增量式的地圖構建,從而達到同時定位和地圖構建的目的。sfm structure from motion 是一種和sl...