zoukankan      html  css  js  c++  java
  • 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 <stdio.h>
     5 
     6 __global__ void SaXPY(float a, float* X_d, float* Y_d, int n)
     7 {
     8     if (threadIdx.x < n)
     9         Y_d[threadIdx.x] = a * X_d[threadIdx.x] + Y_d[threadIdx.x];
    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[i] = (float)i;
    22         Y_h[i] = 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 <<<1, 64 >>>(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
    ", a, i, i, Y_h[i]);
    32     cudaFree(X_d);
    33     cudaFree(Y_d);
    34     free(X_h);
    35     free(Y_h);
    36     system("Pause");
    37     return 0;
    38 }

    7.在调试模式下启动,观察结果。到此结束。

    自己跑的文件下载链接

  • 相关阅读:
    bzoj3380+3381+3382+3383 Usaco2004 Open
    浅谈树链剖分(C++、算法、树结构)
    小学奥数 最大公约数与最小公倍数
    小学奥数 质数的和与积
    小学奥数 分苹果
    小学奥数 连乘积末尾0的个数
    小学奥数 李白的酒
    小学奥数 回文数个数
    小学奥数 等差数列末项计算
    小学奥数 地球人口承载力估计
  • 原文地址:https://www.cnblogs.com/liangliangdetianxia/p/3978955.html
Copyright © 2011-2022 走看看