/*=======================================================================
* 度假中,在青岛这块曾经应该很熟悉的土地上,另一半在围着病人们转悠
* 所以自己在酒店里,也不想出去,听听歌,写写文章。
=======================================================================*/
cublas是NVIDIA的一个GPU的blas库,提供的计算函数都在GPU上执行。
本文是cublas库介绍的第一篇文章,我们从基本开始学起。本文主要学习如何配置使用cublas的环境,并写一个hello cublas的小程序。
1.1 平台配置
硬件要求:GPU支持CUDA,并且计算能力越高越好,至于如何知道GPU的计算能力,请移步这里,当然,计算能力不能代表你的显卡的性能,这一点应该注意。
软件要求:操作系统使用Windows 7,因为Linux上的配置比Windows简单点,所以我在这里选择用Windows写。需要Visual Studio,最好是9.0(VS2008)之后的版本。我使用VS10.0(VS2010),为例讲解。CUDA toolkit 5.0。
1.2 CUBLAS环境配置
第一步:创建一个新的win32控制台应用程序(win32 console application)空项目,如图1所示。这里我添加一个新的cublas01项目。
图1 创建空项目
第二步:添加新建源程序,如图2所示,这里源文件我起名为cubals00.c (啥名没啥可说的,我自己老想从0开始,写C写多了。。)
图2 添加新文件
第三步:添加包含库目录,就是包含cublas头文件的目录,这样是为了能让VS在编译的时候能找到相应的头文件,如图3所示。这里我使用宏变量,这样会增加程序的可移植性。
图3,添加include路径
第四步:添加库目录,这一步添加的目录里面包含了cubals的静态库,同样也使用宏变量,看图4。在链接器中添加cublas.lib的依赖。
图4 添加lib路径
图5 添加附加依赖项
第五步:写点代码测试下环境是否配置成功。
将下面的代码贴到cubals01.c文件中。
/* * test for cublas */ #include <stdio.h> #include <stdlib.h> #include "cublas_v2.h" int main(int argc, char **argv) { cublasHandle_t cubhandle; int version; cublasCreate(&cubhandle); cublasGetVersion(cubhandle, &version); printf("hello cublas v %d\n", version); cublasDestroy(cubhandle); return 0; }
生成项目,如果生成失败,请把你的问题给我留言。
执行,你可以两种方式测试:方式一,直接在VS中按下F5;方式二,在CMD下执行。他们的区别我不确定,但是这样是为了以防万一。
如果执行时说缺少某个DLL,你有两个方案可选,不管怎样你必须在你的计算机里找到这个dll,方案一,将此dll拷贝到你的可执行文件目录下,方案二,在把dll的目录添加到环境变量PATH中。
一切OK了。
第六步,看看我的执行结果。