最近開始接觸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...