玩玩CUBLAS(1)——hello cublas

/*=======================================================================

* 度假中,在青岛这块曾经应该很熟悉的土地上,另一半在围着病人们转悠

* 所以自己在酒店里,也不想出去,听听歌,写写文章。

=======================================================================*/

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了。


第六步,看看我的执行结果。







 

posted @ 2013-05-06 20:17  javawebsoa  Views(964)  Comments(0Edit  收藏  举报