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编程环境相关推荐

  1. win10+vs2019+pcl1.11.0安装教程

    看pointnet论文的时候发现有点云的可视化,但里面的可视化好像是基于CAD做的,正好最近我在用c++处理一些点云数据,就想着怎么直接把点云显示出来,就找到了PCL库,与opencv类似,openc ...

  2. 【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 ...

  3. 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 首先准备安装环 ...

  4. 基于Python实现的微信小程序校园导航系统 | Python第一课环境篇 | Hellow World 程序 | 不同环境下搭建Python编程环境

    一:Hellow World 程序 1.安装Python3 2.运行Python代码片段 Python自带了一个在终端窗口中运行的解释器,让你无需保存并运行整个程序就能尝试运行Python代码片段. ...

  5. win10上使用Wampserv(PHPstudy)搭建DVWA渗透环境

    目录 一.Wampserv简介 二.DVWA渗透环境简介 三.WAMP搭建DVWA渗透环境 1.下载配置Wampserv

  6. 【两次】基于win10搭建mask_rcnn环境,并跑通实验————分享经验

    一.环境搭建概括 win10+GPU+python3.6+anaconda3.5+VS2015+CUDA8.0+cudnn6.0+tensorflow1.8.0 [啰嗦一下]:由于实验室服务器暂时用不 ...

  7. ubuntu18.04中基于Docker搭建tensorflow-gpu开发环境

    前提条件就不多提啦,首先得装好nvidia驱动和Docker19以上版本,网上有很多教程. 尝试1:拉取现有的deepo镜像制作 deepo是一个囊括几乎所有深度学习框架的开源镜像,这里我们选择拉取一 ...

  8. win10系统下GTX1080TI显卡配置tensorflow运行环境(都是泪系列)

    win10系统下GTX1080TI显卡配置tensorflow-gpu运行环境(都是泪系列) 原来在Ubuntu16.04系统下装过一次运行环境,现在因为项目需求在win10下重装还是经过了一番波折, ...

  9. 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版 ...

最新文章

  1. 倒计时3天!华为畅想未来智能车大赛报名即将截止,已报名选手请提交参赛PPT!
  2. onenote怎么同步到电脑_详解onenote保存与同步④:本地笔记奇葩的丢失经历
  3. 【玩法设计】炉石传说吃鸡竞技场构思
  4. 姚期智:人工智能存在三大技术瓶颈
  5. 眉骨高者为大贵之相_男人此处“高大”,大富大贵,前途不可限量!!
  6. SCWS中文分词,功能函数实例应用
  7. Mac端Java开发分析工具JProfiler 13.0.1
  8. bzoj 1924 所驼门王的宝藏
  9. Linux使用“./可执行文件名“运行可执行文件
  10. C++搜索与回溯算法之红与黑
  11. Unity3d之Quaternion 学习与应用
  12. ioremap 和 phys_to_virt区别
  13. 常用的配电箱有哪几种?
  14. React native大版本迭代信息记录
  15. 关于cocos creator 2.0的废除cc.p接口Sorry, cc.p is deprecated. Please use cc.v2 instead
  16. Python爬虫实战013:Python爬取免费代理ip
  17. 米饭里加点它,4大病症全没了!一定要告诉家里做饭的TA
  18. iphone 推广 TA
  19. html获取附件上传位置,html中上传文件得到文件的绝对路径!
  20. linux怎么彻底清除命令历史,历史命令保存文件位置在哪儿?

热门文章

  1. cmd 批量命名,批量删除
  2. m4a转mp3简单的音频转换方法?
  3. 光敏电阻、测试夹、DC2.1电源接口及万用表的使用
  4. C++数据结构问题:线性表的数据元素右移
  5. html 银联图标,银联标志logo图片 云闪付app扫银联标识领获红包
  6. Java——OOP三大特性之封装性(Encapsulation)通俗详细
  7. 科大迅飞语音听写(流式版)WebAPI,Web前端、H5调用 语音识别,语音搜索,语音听写
  8. /bin/bash^M: 坏的解释器: 没有那个文件或目录
  9. FTT暴雷加密熊市雪上加霜?如何对抗系统风险
  10. 经纬度与距离的换算关系