cublas 的學習筆記 1

2021-05-21 17:59:53 字數 1739 閱讀 4589

最近開始接觸cublas,為了監督自己的學習,並希望得到其他朋友的指點,特地將自己的學習筆記寫出來

1. 參考文件

cublas_library_2.1.pdf

2.  

環境配置

1)新增標頭檔案:

cublas.h

2.)cuda

程式的平台上,按照下面的方法新增

cublas

的lib

檔案:project -> ** properties -> configuration properties -> linker -> input -> additional dependencies ->

新增「cublas.lib

3 文件的使用說明

cublas_library

文件中提供了兩種型別的庫函式。

第一種:

cublas helper function

,該類庫函式主要是為

core function

(即為第二類庫函式)

利用gpu

資源做準備,實現的功能包括視訊記憶體空間的分配和釋放,對向量和矩陣做

set/get

操作等。

第二種:

blas.x function

,也稱為

core function

。其中x 可取1

,2,3

分別表示三種不同型別的線性代數的運算,

blas.1 function

實現vector

與vector

的運算,

blas.2 function

實現vector

與matrix

的運算,

blas.3 function

實現matrix

與matrix

的運算。

core function

根據矩陣的型別和特殊矩陣的儲存方式,提供了不同的介面。該庫中包含的特殊矩陣型別有:常規型矩陣(

general matrix

),三角形矩陣(

triangular matrix

),對稱矩陣(

symmetric matrix

),旋轉矩陣(

rotation matrix

)。具體的儲存方式見附錄一

matrix type

。針對稀疏矩陣,為了節約儲存空間,

cublas

提供了兩種儲存方式:

banded storage

和packed storage

,具體的儲存方式見附錄二

storage type。

1.cublasinit();

2.將要計算的變數拷貝到視訊記憶體上

3.呼叫

cublas core function 4.

將計算後變數拷貝回到記憶體上

5.cublasshutdown();

第二和第四步的說明:將要計算的變數「放到」視訊記憶體上,這裡有兩種方式來實現:第一種利用

cublas

提供的helper function cublasalloc

和cublassetmatrix

,第二種:利用

cuda

提供的cudamalloc

和cudamemcpy

。經過測試,這兩種方式的執行效率相差不大

cublas中的矩陣運算

cublas是乙個可以與cuda一同使用的函式庫,它提供了多種矩陣運算的api,但是它列主序的儲存方式卻讓人十分疑惑,今天我就以cublas中的矩陣乘法運算簡單說一下我的理解。cublas中的矩陣乘法運算函式有5個,分別是cublassgemm cublasdgemm cublascgemm cub...

學習筆記1

struct test test int x void fun class test1 test1 int x void fun int main void test1 a 行1 a.fun 行2 test1 b 行3 b.fun 行4 test c 行5 c.fun 行6 test d 行7 d....

學習筆記1

1 字串原地逆序 使用臨時變數 void reverse string s 5 求平均值 避免溢位 int f int x,int y 6 楊氏矩陣 bool young int a m n int x return false 7 十進位制轉十六進製制 string decimaltohexade...