来自GPU的Hello World-基于Win10+VS2019+CUDA 11.0搭建CUDA编程环境
序
CPU和GPU 当代计算机的两个核心,GPU计算与CPU计算的结合,使得原本的计算性能得到大幅度的提高,两者功能的互补性使得CPU+GPU的异构并行计算得到快速发展。为了支持使用CPU+GPU异构架构来执行应用程序,核厂设计了被称为CUDA的一种通用并行计算平台和编程模型。
CUDA Toolkit官方下载传送门!
- 操作系统版本:Win10
- Visual Studio版本:Visual Studio 2019
- CUDA版本:CUDA Toolkit 11.0 RC
1、CUDA的安装
1.1、查看电脑显卡支持的CUDA的版本:
NVIDIA 控制面板–> 帮助–> 系统信息–> 组件:
1.2、安装成功后查看nvcc的安装版本
1.3、配置环境变量
CUDA_PATH: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0
CUDA_PATH_V11_0: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0
上述两项是安装完成Cuda后,已自动生成的环境变量的配置,我们需要自行添加的下述变量:
CUDA_BIN_PATH: %CUDA_PATH%\bin
CUDA_LIB_PATH: %CUDA_PATH%\lib\x64
CUDA_SDK_PATH: C:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.0
CUDA_SDK_BIN_PATH: %CUDA_SDK_PATH%\bin\win64
CUDA_SDK_LIB_PATH: %CUDA_SDK_PATH%\common\lib\x64
并在系统变量Path中,添加一下四个信息:
%CUDA_BIN_PATH%
%CUDA_LIB_PATH%
%CUDA_SDK_BIN_PATH%
%CUDA_SDK_LIB_PATH%
1.4、安装验证
验证安装是否成功,在官方的guideline中关于deviceQuery sample program指明的路径是:
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.2\bin\win64\Release
但是实际验证中,该程序的路径在:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\extras\demo_suite
执行deviceQuery.exe 和 bandwidthTest.exe进行验证。
两次的运行结果都是PASS,则有关系统的环境配置就完成了。接下来运行安装Cuda之后的测试用例,测试用例所在路径根据你安装Cuda的路径,如:C:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.0…
2、VS2019 配置CUDA工程(默认已安装VS,安装VS部分不再赘述)
本部分将运行0_Simple\路径下的测试用例simplePrintf,需先打开工程后,在VS中完善相关配置。
2.1、增加.cu文件拓展名
2.1.1、工具–>选项–>文本编辑器–>文件拓展名, 新增扩展名 .cu 并将编辑器设置为:Microsoft Visual C++。
2.1.2、工具–>选项–>项目和解决方案–>VC++项目设置,添加要包括的扩展名".cu"。
2.2、配置生成依赖项
2.2.1、配置生成自定义:右键打开的项目–>生成依赖项–>生成自定义–>勾选CUDA v11.0。
2.2.2、配置.cu文件的配置属性:右键点击.cu文件–>将该类型文件的属性设置为 CUDA c/c++。
2.2.3、运行测试用例。VS会调用nvcc编译器,编译.cu代码。
OK,基本环境我们搭建成功了,接下来就来试试如何使用GPU来say Hello World!吧。
3、GPU编程测试demo
使用VS新建空项目即可,并按上述步骤2.2配置项目。
#include "stdio.h"/*
修饰符__global__表明这个函数是将会从CPU中调用,在GPU中进行执行。
并借此函数来启动内核函数。
*/
__global__ void hello_world_from_gpu(void)
{printf("Hello World from GPU\n");return;
}int main(void)
{printf("Hello World from CPU\n");hello_world_from_gpu <<<1, 5 >>> ();/*三重尖括号里的参数表明的是相关的执行配置,用来表明使用多少线程来执行内核函数,在本例子中有5个GPU线程被系统所调用。*/cudaDeviceReset();/*执行完成后调用cudaDeviceReset()函数释放和清空与当前进程运行相关的资源。*/return 0;
}
测试结果:
参考书籍:
1、《CUDA C权威编程指南》
2、CUDA Installation Guide for Microsoft Windows
参考博文:
1、 Win10 系统在 Visual Studio 2019 环境下配置 CUDA 10.1 + TensorFlow-GPU 1.14.0
2、 vs2017 配置cuda 项目
来自GPU的Hello World-基于Win10+VS2019+CUDA 11.0搭建CUDA编程环境相关推荐
- win10+vs2019+pcl1.11.0安装教程
看pointnet论文的时候发现有点云的可视化,但里面的可视化好像是基于CAD做的,正好最近我在用c++处理一些点云数据,就想着怎么直接把点云显示出来,就找到了PCL库,与opencv类似,openc ...
- 【opencv安装和配置完整版教程】(win10+vs2019+opencv4.4.0+opencv_contrib-4.4.0+永久配置)
[opencv安装和配置](win10+vs2019+opencv4.4.0+opencv_contrib-4.4.0+永久配置) 下载vs2019 opencv4.4.0.opencv_contri ...
- python opencv调用cuda_Win10使用VS2019从源码编译OpenCV 4.4 + CUDA 11.0 + Cudnn 8.0 + python3
本文主要介绍Win10使用VS2019从源码编译OpenCV 4.4,并使用opencv_contrib支持CUDA 11.0 + Cudnn 8.0,以及对python3的支持. 1 首先准备安装环 ...
- 基于Python实现的微信小程序校园导航系统 | Python第一课环境篇 | Hellow World 程序 | 不同环境下搭建Python编程环境
一:Hellow World 程序 1.安装Python3 2.运行Python代码片段 Python自带了一个在终端窗口中运行的解释器,让你无需保存并运行整个程序就能尝试运行Python代码片段. ...
- win10上使用Wampserv(PHPstudy)搭建DVWA渗透环境
目录 一.Wampserv简介 二.DVWA渗透环境简介 三.WAMP搭建DVWA渗透环境 1.下载配置Wampserv
- 【两次】基于win10搭建mask_rcnn环境,并跑通实验————分享经验
一.环境搭建概括 win10+GPU+python3.6+anaconda3.5+VS2015+CUDA8.0+cudnn6.0+tensorflow1.8.0 [啰嗦一下]:由于实验室服务器暂时用不 ...
- ubuntu18.04中基于Docker搭建tensorflow-gpu开发环境
前提条件就不多提啦,首先得装好nvidia驱动和Docker19以上版本,网上有很多教程. 尝试1:拉取现有的deepo镜像制作 deepo是一个囊括几乎所有深度学习框架的开源镜像,这里我们选择拉取一 ...
- win10系统下GTX1080TI显卡配置tensorflow运行环境(都是泪系列)
win10系统下GTX1080TI显卡配置tensorflow-gpu运行环境(都是泪系列) 原来在Ubuntu16.04系统下装过一次运行环境,现在因为项目需求在win10下重装还是经过了一番波折, ...
- win10+1050显卡+cuda9.0+cudnn7.6.5+pytorch1.1.0+py3.7(conda)安装+jupyter运行+pycharm运行(conda环境)
win10+1050显卡+cuda9.0+cudnn7.5+pytorch1.1.0安装 参考网址 安装cuda9.0 检查GPU显卡支持的cuda版本 linux下查看cuda版本 windows版 ...
最新文章
- 倒计时3天!华为畅想未来智能车大赛报名即将截止,已报名选手请提交参赛PPT!
- onenote怎么同步到电脑_详解onenote保存与同步④:本地笔记奇葩的丢失经历
- 【玩法设计】炉石传说吃鸡竞技场构思
- 姚期智:人工智能存在三大技术瓶颈
- 眉骨高者为大贵之相_男人此处“高大”,大富大贵,前途不可限量!!
- SCWS中文分词,功能函数实例应用
- Mac端Java开发分析工具JProfiler 13.0.1
- bzoj 1924 所驼门王的宝藏
- Linux使用“./可执行文件名“运行可执行文件
- C++搜索与回溯算法之红与黑
- Unity3d之Quaternion 学习与应用
- ioremap 和 phys_to_virt区别
- 常用的配电箱有哪几种?
- React native大版本迭代信息记录
- 关于cocos creator 2.0的废除cc.p接口Sorry, cc.p is deprecated. Please use cc.v2 instead
- Python爬虫实战013:Python爬取免费代理ip
- 米饭里加点它,4大病症全没了!一定要告诉家里做饭的TA
- iphone 推广 TA
- html获取附件上传位置,html中上传文件得到文件的绝对路径!
- linux怎么彻底清除命令历史,历史命令保存文件位置在哪儿?
热门文章
- cmd 批量命名,批量删除
- m4a转mp3简单的音频转换方法?
- 光敏电阻、测试夹、DC2.1电源接口及万用表的使用
- C++数据结构问题:线性表的数据元素右移
- html 银联图标,银联标志logo图片 云闪付app扫银联标识领获红包
- Java——OOP三大特性之封装性(Encapsulation)通俗详细
- 科大迅飞语音听写(流式版)WebAPI,Web前端、H5调用 语音识别,语音搜索,语音听写
- /bin/bash^M: 坏的解释器: 没有那个文件或目录
- FTT暴雷加密熊市雪上加霜?如何对抗系统风险
- 经纬度与距离的换算关系