CUDA之cublas实例

代码如下:

#include #include #include //使用cublas必须包含的头文件 #include using namespace std; int main( int argc, char** argv) { int n=5000000; float *x=new float[n]; float *y=new float[n]; float *x_dev,*y_dev; for(int i=0;i(i); cublasInit();//初始化cublas环境 cublasAlloc (n, sizeof(*x), (void**)&x_dev);//在设备上分配空间 cublasAlloc (n, sizeof(*y), (void**)&y_dev);//在设备上分配空间 cublasSetMatrix (n, 1, sizeof(*x), x, n, x_dev, n);//把主机上的数据移入设备中 cublasSetMatrix (n, 1, sizeof(*x), y, n, y_dev, n);//把主机上的数据移入设备中 unsigned int timer = 0; cutilCheckError( cutCreateTimer( &timer)); cutilCheckError( cutStartTimer( timer)); for(int i=0;i<2000;++i) cublasSaxpy (n, 1.0f, x_dev, 1, y_dev, 1); //调用saxpy函数 cutilCheckError( cutStopTimer( timer)); cout<<"GPU处理时间: "<(clock()-start)<<"毫秒"<

运行结果如下:

GPU处理时间: 2493.16毫秒
CPU处理时间: 19094毫秒

环境:CUDA toolkit3.2+Windows XP+CUDA SDK中的vs2008模板release编译通过,显卡是GeForce GT240。感觉测试效果不太好。大家可根据自己的情况进行测试,报告一下结果吧。项目文件下载(把扩展名改为rar然后解压即可)。

你可能感兴趣的:(CUDA之cublas实例)