bobpxp 发表于 2015-5-14 12:21:42

CUDA 6.5 && VS2013 && Win7:创建CUDA项目

  运行环境:
  Win7+VS2013+CUDA6.5
  1.创建win32空项目
  
  
  
  
  
   2.右键项目解决方案-->生成项目依赖项-->生成自定义
  
  
  3.右键项目解决方案-->属性-->配置属性-->常规-->平台工具集
  
  
  配置属性-->VC++目录-->包含目录,添加
  



$(CUDA_INC_PATH)
  
  
  
  连接器-->常规-->附加库目录,添加
  



$(CUDA_PATH)/lib/$(PlatformName)
  

  
  
  链接器-->输入-->附加依赖项,添加
  



cudart.lib
  
  
  
  确定!
  现在就可以创建/使用/编译*.cu文件了。
  4.右键项目名称,添加-->新建项-->C++文件-->修改名称及后缀=>*.cu



  5.在新文件中添加以下头文件



1 #include "cuda.h"
2 #include "cuda_runtime.h"
3 #include "device_launch_parameters.h"
  6.创建kernel内核文件,一个可以在GPU上执行的文件



1 #include "cuda.h"
2 #include "cuda_runtime.h"
3 #include "device_launch_parameters.h"
4 #include
5
6 __global__ void SaXPY(float a, float* X_d, float* Y_d, int n)
7 {
8   if (threadIdx.x < n)
9         Y_d = a * X_d + Y_d;
10 }
11
12 int main()
13 {
14   int n = 64;
15   float a = 2;
16   float *X_h, *X_d, *Y_h, *Y_d;
17   X_h = (float*)malloc(n * sizeof(float));
18   Y_h = (float*)malloc(n * sizeof(float));
19   for (int i = 0; i < n; i++)
20   {
21         X_h = (float)i;
22         Y_h = 1.0;
23   }
24   cudaMalloc(&X_d, n * sizeof(float));
25   cudaMalloc(&Y_d, n * sizeof(float));
26   cudaMemcpy(X_d, X_h, n * sizeof(float), cudaMemcpyHostToDevice);
27   cudaMemcpy(Y_d, Y_h, n * sizeof(float), cudaMemcpyHostToDevice);
28   SaXPY (a, X_d, Y_d, n);
29   cudaMemcpy(Y_h, Y_d, n * sizeof(float), cudaMemcpyDeviceToHost);
30   for (int i = 0; i < n; i++)
31         printf("%2.1f X[%d] + Y[%d] = %f\n", a, i, i, Y_h);
32   cudaFree(X_d);
33   cudaFree(Y_d);
34   free(X_h);
35   free(Y_h);
36   system("Pause");
37   return 0;
38 }
  7.在调试模式下启动,观察结果。到此结束。
  自己跑的文件下载链接
页: [1]
查看完整版本: CUDA 6.5 && VS2013 && Win7:创建CUDA项目