CUDA+VS2017+win环境下 cuda工程环境搭建(解决标识符未定义或申明)
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 配置
创建CUDA工程:打开vs,创建新项目,选择CUDA项目,填写项目名称和选择路径。如上图所示。
增加包含目录
右键项目属性->VC++目录->包含目录,将安装好CUDA中include加入包含目录中,将下方这两个路径加入。
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\include
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.0\common\inc增加项目扩展名
点击上方菜单栏工具=>选项=>文本编辑器=>文件扩展名,在扩展名栏中输入.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工程环境搭建(解决标识符未定义或申明)相关推荐
- WIN 7下配置Qt环境变量
WIN 7下配置Qt环境变量 1.双击Debug和release文件下.exe运行时候出现错误 2.报错dll错误,表示找不到动态库(里面是程序实现)–默认在当前目录下找dll 找不到就到环境变量pa ...
- Java环境下GDAL / OGR环境配置与入门
Java环境下GDAL / OGR环境配置与入门 0.概述 1.环境配置 1.1 开发环境下载 1.2 环境变量配置 1.3java工程配置 1.3.1新建Java工程 1.3.2添加GDAL的jar ...
- python3环境下 tensorflow环境中经常遇到'*' has type str, but expected one of: bytes问题的解决
原文:http://blog.csdn.net/sparkexpert/article/details/70230072 python3环境下 tensorflow环境中经常遇到'*' has typ ...
- windows10环境下VMware14中Ubuntu16.04解决如何上网问题
windows10环境下VMware14中Ubuntu16.04解决如何上网问题 参考文章: (1)windows10环境下VMware14中Ubuntu16.04解决如何上网问题 (2)https: ...
- 解决windows10环境下conda创建环境出现 No writeable pkgs directories configured
文章目录 解决windows10环境下conda创建环境出现 No writeable pkgs directories configured 如果这样都不行,就一步一步的接着往下做 查看自己cond ...
- linux环境下python机器学习环境的搭建
linux环境下python机器学习环境的搭建## 1.准备工作,查看linux自带的python版本,以及建立一个测试目录用于存放测试文件: ubuntu@VM-164-254-ubuntu:/va ...
- C#环境下GDAL / OGR环境配置与入门
C#环境下GDAL.OGR环境配置与入门 0.概述 1.环境配置 2.类库介绍 3.代码实践 4. 总结 0.概述 由于需要进行一些Shapefile文件的读取和管理,但是ArcGIS的二次开发工具又 ...
- 生产环境下的LAMP环境搭建
生产环境下的LAMP环境搭建 V20 学习猿地 ww.lmonkey.com 一.LAMP环境介绍 Web服务器的主要功能是提供网上信息浏览服务.所有网页的集合被称为网站,网站也只有发布到网上才能被 ...
- Windows环境下设置php环境变量
Windows环境下设置php环境变量 为什么要给php设置环境变量?它相当于是给php终端命令追加一个快捷键,系统将会根据环境变量路径自动查找匹配从而命中该命令. 假设php文件位于该路径 D:\p ...
最新文章
- 开源大数据查询分析引擎
- LUA table.sort的问题,数组与表的区别
- python 30分钟_一张图30分钟快速Python入门
- php数组变量太大后台返回500,PHP max_input_var设为了1000导致post数组太多时无法接受后面的参数值...
- pom.xml配置详解
- Struts2 文件上传
- NYOJ---ASCII码排序
- wust2012级软件工程新生经验交流会草稿
- C# .NET 中实现类似于化学表达式的,平方等的上下标的实现方法
- SoX 音频处理工具使用方法
- arch模型 python_【一点资讯】Python玩转金融时间序列之ARCH与GARCH模型 www.yidianzixun.com...
- conda 安装完了之后安装torch总是失败
- 关于小虾米大学尾声的感慨
- Android判断手机是否是小米MIUI系统
- 怎么判断一篇英文论文是不是综述
- 抖音小店入驻条件及费用,2021个人开通抖音小店条件
- 高考数学计算机题,高考数学题型全归纳汇总
- 前端----HTML/CSS 单边框
- C++ vector 中sort的一些用法
- 一个网站是如何上线的