cublas 的学习笔记_1

最近开始接触cublas,为了监督自己的学习,并希望得到其他朋友的指点,特地将自己的学习笔记写出来

1. 参考文档

 CUBLAS_Library_2.1.pdf

2.  环境配置

1)添加头文件:cublas.h

2.)添加链接库:在能运行cuda程序的平台上,按照下面的方法添加cublaslib文件: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 可取123分别表示三种不同类型的线性代数的运算,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

使用cublas 库函数的程序框架

1.       cublasInit();   

2.       将要计算的变量拷贝到显存上

3.       调用cublas core function

4.       将计算后变量拷贝回到内存上

5.       cublasShutdown();

第二和第四步的说明:将要计算的变量“放到”显存上,这里有两种方式来实现:第一种利用cublas提供的helper function cublasAlloccublasSetMatrix,第二种:利用cuda提供的cudamalloc cudaMemcpy。经过测试,这两种方式的执行效率相差不大

你可能感兴趣的:(CUDA学习笔记)