【CUDA】VS2017新项目配置

一、新建项目

  打开VS2017 → 新建项目 → Win32控制台应用程序 → “空项目”打钩

二、调整配置管理器平台类型

  右键项目 → 属性 → 配置管理器 → 全改为“x64”

  

三、配置生成属性

  右键项目 → 生成依赖项 → 生成自定义 → 勾选“CUDA 9.0XXX”

  

三、配置基本库目录

  注意:后续步骤中出现的目录地址需取决于你当前的CUDA版本及安装路径

  右键项目 → 属性 → 配置属性 → VC++目录 → 包含目录,添加以下目录:

  • C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\include
  • C:\ProgramData\NVIDIA Corporation\CUDA Samples\v9.0\common\inc

  …… → 库目录,添加以下目录:

  • C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\lib\x64
  • C:\ProgramData\NVIDIA Corporation\CUDA Samples\v9.0\common\lib\x64

  

四、配置CUDA静态链接库路径

  右键项目 → 属性 → 配置属性 → 链接器 → 常规 → 附加库目录,添加以下目录:

  • $(CUDA_PATH_V9_0)\lib\$(Platform)

  

五、选用CUDA静态链接库

  右键项目 → 属性 → 配置属性 → 链接器 → 输入 → 附加依赖项,添加以下库:

  • cublas.lib;cublas_device.lib;cuda.lib;cudadevrt.lib;cudart.lib;cudart_static.lib;cufft.lib;cufftw.lib;curand.lib;cusolver.lib;cusparse.lib;nppc.lib;nppial.lib;nppicc.lib;nppicom.lib;nppidei.lib;nppif.lib;nppig.lib;nppim.lib;nppist.lib;nppisu.lib;nppitc.lib;npps.lib;nvblas.lib;nvcuvid.lib;nvgraph.lib;nvml.lib;nvrtc.lib;OpenCL.lib;
    以上为 “第三步” 中添加的库目录 “C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\lib\x64” 中的库!
  • 注意:kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)
    这些库为原有!

六、配置源码文件风格

  右键源文件 → 添加 → 新建项 → 选择 “CUDA C/C++ File”

  右键 “xxx.cu" 源文件 → 属性 → 配置属性 → 常规 → 项类型 → 设置为“CUDA C/C++”

  

七、编写测试程序

 1 #include "cuda_runtime.h"
 2 #include "device_launch_parameters.h"
 3 #include <stdio.h>
 4
 5 int main() {
 6     int deviceCount;
 7     cudaGetDeviceCount(&deviceCount);
 8
 9     int dev;
10     for (dev = 0; dev < deviceCount; dev++)
11     {
12         int driver_version(0), runtime_version(0);
13         cudaDeviceProp deviceProp;
14         cudaGetDeviceProperties(&deviceProp, dev);
15         if (dev == 0)
16             if (deviceProp.minor = 9999 && deviceProp.major == 9999)
17                 printf("\n");
18         printf("\nDevice%d:\"%s\"\n", dev, deviceProp.name);
19         cudaDriverGetVersion(&driver_version);
20         printf("CUDA驱动版本:                                   %d.%d\n", driver_version / 1000, (driver_version % 1000) / 10);
21         cudaRuntimeGetVersion(&runtime_version);
22         printf("CUDA运行时版本:                                 %d.%d\n", runtime_version / 1000, (runtime_version % 1000) / 10);
23         printf("设备计算能力:                                   %d.%d\n", deviceProp.major, deviceProp.minor);
24         printf("Total amount of Global Memory:                  %u bytes\n", deviceProp.totalGlobalMem);
25         printf("Number of SMs:                                  %d\n", deviceProp.multiProcessorCount);
26         printf("Total amount of Constant Memory:                %u bytes\n", deviceProp.totalConstMem);
27         printf("Total amount of Shared Memory per block:        %u bytes\n", deviceProp.sharedMemPerBlock);
28         printf("Total number of registers available per block:  %d\n", deviceProp.regsPerBlock);
29         printf("Warp size:                                      %d\n", deviceProp.warpSize);
30         printf("Maximum number of threads per SM:               %d\n", deviceProp.maxThreadsPerMultiProcessor);
31         printf("Maximum number of threads per block:            %d\n", deviceProp.maxThreadsPerBlock);
32         printf("Maximum size of each dimension of a block:      %d x %d x %d\n", deviceProp.maxThreadsDim[0],
33             deviceProp.maxThreadsDim[1],
34             deviceProp.maxThreadsDim[2]);
35         printf("Maximum size of each dimension of a grid:       %d x %d x %d\n", deviceProp.maxGridSize[0], deviceProp.maxGridSize[1], deviceProp.maxGridSize[2]);
36         printf("Maximum memory pitch:                           %u bytes\n", deviceProp.memPitch);
37         printf("Texture alignmemt:                              %u bytes\n", deviceProp.texturePitchAlignment);
38         printf("Clock rate:                                     %.2f GHz\n", deviceProp.clockRate * 1e-6f);
39         printf("Memory Clock rate:                              %.0f MHz\n", deviceProp.memoryClockRate * 1e-3f);
40         printf("Memory Bus Width:                               %d-bit\n", deviceProp.memoryBusWidth);
41     }
42
43     return 0;
44 }

  输出结果:

  

原文地址:https://www.cnblogs.com/wayne793377164/p/8185404.html

时间: 2024-10-09 10:27:25

【CUDA】VS2017新项目配置的相关文章

使用VS开始一个新项目配置外部库的新手总结

在使用VS做一个项目的时候,往往会需要使用各种各样的库,一般一个标准的外部库目录大体结构为: VS在配置这些库的时候有多种可行方法,但是不同的方法对于项目后续的管理和移植有不同的影响,我使用过以下三种方法进行配置. 第一种方式: 最不推荐的一种是直接用相对路径或者绝对路径去配置需要的库.这样做极不利于项目的整体维护和移植. 第二种方式: 每次新建vs工程是,习惯性的把include.lib.bin目录也创建出来,它们跟.sln在同一目录下.那么在使用到外部库的时候,就可以把外部库中需要的东西分别

关于导入新项目的问题——项目文件有错,但是子文件没任何错误的解决办法

在我们学习和工作的时候,有时候将别人的 Project 导入到自己的开发工具时,总是会有莫名其妙的奇葩错误, 就是明明项目里面的代码和类都没错,但是项目文件夹上有一个红色的叉叉,今天我就给大家来说说关于这类错 误的解决办法,我就故意导致项目报这个异常,一步一步演示给大伙看,希望大家在以后遇到这类问题可以迎刃 而解 错误示例图: 我们可以看到上面截图,除了项目文件,其他都没任何错误,可是在console没有异常告诉我们,我们该怎么解 决呢?其实很简单,下面看我演示: 打开红色方框这个选项,里面就是

cocos2d-x3.2创建新项目失败的一种可能性(cygwin自带的python2.6被抢先执行)

之前一直使用cocos2d-x2.2写游戏,写了几个游戏后,想尝试下3.x版本的新功能,就下载了cocos2d-x3.2版本. 参照官方文档的说法,cocos2d-x3.x版本需要python2.7环境支持,python2.6以及python3.x版本都不行,所以特意去python官网下载了2.7.8版本,安装好后进入目录: cocos2d-x-3.2\tools\cocos2d-console\bin 执行命令: python cocos.py new HelloCpp -p com.hell

cocos2d-js-3.0创建一个新项目并运行

1.官网下载最新版本的cocos2d-js-rc2,解压之 http://www.cocos2d-x.org/filedown/cocos2d-js-v3.0-rc2.zip 2.如果没有安装python环境,需要安装python,推荐使用的版本为2.7 python的官方网站:https://www.python.org/  选择download中对应的系统版本 window下需要配置环境变量path:python的安装路径 3.打开命令行端口,切换到cocos2d-js-rc2的根目录下,l

理解 IntelliJ IDEA 的项目配置和Web部署

1.项目配置的理解 IDEA 中最重要的各种设置项,就是这个 Project Structre 了,关乎你的项目运行,缺胳膊少腿都不行.最近公司正好也是用之前自己比较熟悉的IDEA而不是Eclipse,为了更深入理解和使用,就找来各种资料再研究一下,这里整理后来个输出. 1.1 Project Project name:定义项目的名称: Project SDK:设置该项目使用的JDK,也可以在此处新添加其他版本的JDK: Project language level:这个和JDK的类似,区别在于

经验浅谈,新人如何快速上手一个新项目

经验浅谈,总结下自己如何接手一个新项目: 1.向同事问清楚当前的开发环境,而且现今的发展,要区分64位和32位2.搞明白当前项目的运行环境,如果是多项目的话,要搞清楚依赖关系3.让同事帮忙搞定本机可运行项目的环境4.当环境都弄好.项目能启动后,开始代码之旅,也是最重要的一步. a)看配置.通看一遍配置文件,了解当前项目用了哪些框架,做到心中有数 b)学业务(重点*).了解各页面间的跳转及异步请求,写一个临时Filter,拦截/*的所有请求,在doFilter()方法中,打印出每次请求的路径( S

如何向Openstack社区提交一个新项目

前几天有个朋友问我:自己有一个idea不错的项目,也把基本的框架写好了,想贡献到Openstack社区,却不知道应该怎么做.正好之前我有过类似的经历,那么来分享一下我是如何向Openstack社区提交一个新项目. Openstack的整套系统就是一个开源项目的“大杂烩”,社区把所有项目划分为两类:核心和孵化.除非出身特别牛逼或者从其他核心项目独立出来的项目会在设计之初就被列为核心项目(例如Nuetron,Ironic等):其他项目一般划分到孵化类,在通过一个或多个大版本的发展后,如果变得成熟满足

Android Gradle Pluin指南(三)——依赖关系、android库和多项目配置

原文地址:http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Dependencies-Android-Libraries-and-Multi-project-setup 4.Dependencies,Android Libraries and Multi-project setup(依赖关系,Android库和多项目设置) Gradle项目可以依赖于其它组件.这些组件可以是外部二进制包,或者是其它的Gradle项

从cocos2d-x-2.x到cocos2d-x-3.x: lua项目配置

cocos2dx-x3.0的正式版出来也有一段时间了,现在最新的版本是到了3.2alpha,和2.x系列相比,能够找到的相关资料除了官网上的wiki,其他的也不见得多,遇到的一些和2.x的差异和问题在这里记录下来备忘. 和2.x的shell脚本相比,3.x系列的配置全部python化了,最大的好处当然是跨平台,在windows下面也可以脱离cywin进行android版本的编译,虽然ios版本还是离不开xcode,但是可以mac和win分别编译不同版本的感觉还是不错的,省时省力. 先从pytho