CUDA+VS2017+win环境下 cuda工程环境搭建

  • 引言
  • 前提准备(CUDA和VS的安装)
  • Visual Studio 配置
  • 测试
  • Reference

引言

在学习CUDA并行计算原理时,在VS下新建了一个CUDA工程,但是对加载函数定义中的一些CUDA标识符无法正常识别。错误如下:

__device__   错误:该符号未定义

这个标识符的作用是声明函数从设备端调用并在设备端执行

前提准备(CUDA和VS的安装)

  • Visual Studio(如果确定CUDA和VS安装正确,可以直接转到到Visual Studio配置。) :首先安装VS必要组件(C++桌面程序)

  • CUDA 在 NVIDIA官网链接(此处是CUDA11.0)上下载符合自己显卡且所需版本的CUDA安装,安装后需要配置环境变量,这个网上教程很多,不再赘述。
    安装完成后,记得使用测试程序测试一下是否正确安装。

Visual Studio 配置

  1. 创建CUDA工程:打开vs,创建新项目,选择CUDA项目,填写项目名称选择路径。如上图所示。

  2. 增加包含目录
    右键项目属性->VC++目录->包含目录,将安装好CUDA中include加入包含目录中,将下方这两个路径加入。
    C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\include
    C:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.0\common\inc

  3. 增加项目扩展名
    点击上方菜单栏工具=>选项=>文本编辑器=>文件扩展名,在扩展名栏中输入.cu,并选择编辑器为:Microsoft Visual C++。

5.工具–>选项–>项目和解决方案–>VC++项目设置,添加要包括的扩展名".cu"


6. 右键打开的项目–>生成依赖项–>生成自定义–>勾选CUDA v11.0

测试

测试案例来自: [CUDA高性能并行计算链接]第三章中项目dist_v1_cuda
下面展示一些 案例代码

// An highlighted block#include<stdio.h>
#include<iostream>
#define N 64
#define TPB 32__device__ float scale(int n, int i) {return((float)i) / (n - 1);
}
__device__ float distance(float x1, float x2) {return sqrt((x2 - x1)*(x2 - x1));
}__global__ void distanceKernel(float *d_out,float ref,int len)
{const int i = blockIdx.x*blockDim.x + threadIdx.x;float x = scale(i, N);d_out[i] = distance(x, ref);printf("i=%2d:dist from %f to %f is %f.\n", i, ref, x, d_out[i]);
}
int main() {float ref = 0.5f;float *d_out = 0;cudaMalloc(&d_out, N * sizeof(float));distanceKernel <<<N/TPB, TPB>>>(d_out,ref,N);system("pause");cudaFree(d_out);return 0;}

编译成功

结果

Reference

[1] Storti D , Yurtoglu M . CUDA for Engineers: An Introduction to High-Performance Parallel Computing[C]// Addison-Wesley Professional. Addison-Wesley Professional, 2016.
[2] 欧阳求败 https://www.bilibili.com/read/cv7335974/

CUDA+VS2017+win环境下 cuda工程环境搭建(解决标识符未定义或申明)相关推荐

  1. WIN 7下配置Qt环境变量

    WIN 7下配置Qt环境变量 1.双击Debug和release文件下.exe运行时候出现错误 2.报错dll错误,表示找不到动态库(里面是程序实现)–默认在当前目录下找dll 找不到就到环境变量pa ...

  2. Java环境下GDAL / OGR环境配置与入门

    Java环境下GDAL / OGR环境配置与入门 0.概述 1.环境配置 1.1 开发环境下载 1.2 环境变量配置 1.3java工程配置 1.3.1新建Java工程 1.3.2添加GDAL的jar ...

  3. python3环境下 tensorflow环境中经常遇到'*' has type str, but expected one of: bytes问题的解决

    原文:http://blog.csdn.net/sparkexpert/article/details/70230072 python3环境下 tensorflow环境中经常遇到'*' has typ ...

  4. windows10环境下VMware14中Ubuntu16.04解决如何上网问题

    windows10环境下VMware14中Ubuntu16.04解决如何上网问题 参考文章: (1)windows10环境下VMware14中Ubuntu16.04解决如何上网问题 (2)https: ...

  5. 解决windows10环境下conda创建环境出现 No writeable pkgs directories configured

    文章目录 解决windows10环境下conda创建环境出现 No writeable pkgs directories configured 如果这样都不行,就一步一步的接着往下做 查看自己cond ...

  6. linux环境下python机器学习环境的搭建

    linux环境下python机器学习环境的搭建## 1.准备工作,查看linux自带的python版本,以及建立一个测试目录用于存放测试文件: ubuntu@VM-164-254-ubuntu:/va ...

  7. C#环境下GDAL / OGR环境配置与入门

    C#环境下GDAL.OGR环境配置与入门 0.概述 1.环境配置 2.类库介绍 3.代码实践 4. 总结 0.概述 由于需要进行一些Shapefile文件的读取和管理,但是ArcGIS的二次开发工具又 ...

  8. 生产环境下的LAMP环境搭建

    生产环境下的LAMP环境搭建 V20 学习猿地  ww.lmonkey.com 一.LAMP环境介绍 Web服务器的主要功能是提供网上信息浏览服务.所有网页的集合被称为网站,网站也只有发布到网上才能被 ...

  9. Windows环境下设置php环境变量

    Windows环境下设置php环境变量 为什么要给php设置环境变量?它相当于是给php终端命令追加一个快捷键,系统将会根据环境变量路径自动查找匹配从而命中该命令. 假设php文件位于该路径 D:\p ...

最新文章

  1. 开源大数据查询分析引擎
  2. LUA table.sort的问题,数组与表的区别
  3. python 30分钟_一张图30分钟快速Python入门
  4. php数组变量太大后台返回500,PHP max_input_var设为了1000导致post数组太多时无法接受后面的参数值...
  5. pom.xml配置详解
  6. Struts2 文件上传
  7. NYOJ---ASCII码排序
  8. wust2012级软件工程新生经验交流会草稿
  9. C# .NET 中实现类似于化学表达式的,平方等的上下标的实现方法
  10. SoX 音频处理工具使用方法
  11. arch模型 python_【一点资讯】Python玩转金融时间序列之ARCH与GARCH模型 www.yidianzixun.com...
  12. conda 安装完了之后安装torch总是失败
  13. 关于小虾米大学尾声的感慨
  14. Android判断手机是否是小米MIUI系统
  15. 怎么判断一篇英文论文是不是综述
  16. 抖音小店入驻条件及费用,2021个人开通抖音小店条件
  17. 高考数学计算机题,高考数学题型全归纳汇总
  18. 前端----HTML/CSS 单边框
  19. C++ vector 中sort的一些用法
  20. 一个网站是如何上线的

热门文章

  1. Excel 2010 里怎么不显示空单元格中的数字0
  2. LEETCODE 136.Singel Number
  3. Node.js 安装教程(Windows)
  4. python standardprint_Python 机器学习 标准差(Standard Deviation)
  5. 病毒丨3601lpk劫持病毒分析
  6. FZOJβ #113 后缀平衡树
  7. Java并发Future
  8. 精神分析学的创始人弗洛伊德先生关于梦的理论
  9. 机器学习--特征选择(Python代码实现)
  10. Java技术之AQS详解