技术标签: 经验分享 c++ CUDA 与硬件加速 visualstudio
2023年英伟达发布了DUDA12.1版本。相比于11.7版取消了实例程序。很多网上的安装教程说的不清楚,自己根据前任的工作整理了一下。
系统平台:Windows11。
搭建环境:Visual Sdudio 2022。
GPU型号:移动端RTX4060。
环境配置的前面部分与以前的基本相同。主要区别是环境变量的添加。
步骤1 安装显卡驱动
现在的新买的电脑一般都已经安装驱动,检查驱动是否安装:右键开始图标,使用终端管理员窗口中输入nvidia-smi:
如果没有安装,则可以进入NVIDIA官网NVIDIA GeForce 驱动程序 - N 卡驱动 | NVIDIA选择相应的显卡进行下载,并安装驱动。如能显示上图信息,则驱动安装成功。现在英伟达驱动分两种Game Ready 驱动程序和 Studio 驱动程序 ,随便选一种即可。安装驱动时,GeForce Experience模块可以不安装。
步骤2 安装Visual Studio2022
下载Visual Studio2022学生版,下载地址。 Visual Studio 2022 IDE - 适用于软件开发人员的编程工具 (microsoft.com)
下载完后在线安装,注意安装时一定要勾选下图中的“使用C++的桌面开发”,其余的模块按需勾选。其中此模块里面的Windows11 SDK一定要勾选。
若忘记勾选,则需要在打开的VS工程中进行在线安装。方法:工具->获取工具和功能_>修改,
步骤3 安装CUDA Toolkit12.1
进入CUDA Toolkit官网CUDA Toolkit 12.1 Update 1 Downloads | NVIDIA Developer下载。下载exe(local),后直接运行exe文件,安装即可。
安装完成CUDA,右键开始图标,使用终端管理员窗口中输入 nvcc -V
验证是否安装成功,看到如下信息说明安装成功。
步骤4 添加系统环境变量
安装完CUDA Toolkit12.1后,右键我的电脑->高级系统设置->高级->环境变量中的系统变量中已经加入了cuda的两个路径。
继续新建两个系统变量:
步骤5 修改工程属性与测试
此部分分为两种情况:一种是新建工程测试;一种是测试已有的工程。其中,已有的工程可能是在其他版本上运行过的工程。
(1)新建工程测试
打开VS软件,点击创建新项目,选择CUDA12.1 Runtime并下一步。
输入项目名称后,进入代码编写界面。kernel.cu中会生产默认代码。
右键kernel.cu属性,选择配置属性,项类型中选择cuda c++。
在菜单栏中选择工具–>选项–>文本编辑器–>文件拓展名, 新增扩展名 .cu 并将编辑器设置为:Microsoft Visual C++。)
然后在工具–>选项–>项目和解决方案–>VC++项目设置,添加要包括的扩展名".cu"。
右键打开的项目名称–>生成依赖项–>生成自定义–>勾选CUDA v12.1
若选项中没有依赖项,执行以下操作:
①在C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\extras\visual_studio_integration\MSBuildExtensions
找到以下4个文件:
②将这4个文件复制到:
C:\Program Files\Microsoft Visual Studio\2022\Preview\MSBuild\Microsoft\VC\v170\BuildCustomizations文件夹下;(在vs的安装目录中去找)
右键打开的项目名称–>属性,在VC++目录中加入变量:(路径取决于自己安装CUDA的位置)
包含目录为:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\include
库目录:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\lib\x64
然后选择连接器–>输入–>附加依赖项中添加以下库文件:(注意不要有空格)
cublas.lib
cuda.lib
cudadevrt.lib
cudart.lib
cudart_static.lib
按下F5运行代码,出现下面界面,表示测试成功。
(2)已有工程测试
双击已有工程的 .sln文件。此时打开的工程界面中可能会缺少.cu文件。
在菜单栏中选择工具–>选项–>文本编辑器–>文件拓展名, 新增扩展名 .cu 并将编辑器设置为:Microsoft Visual C++。)
然后在工具–>选项–>项目和解决方案–>VC++项目设置,添加要包括的扩展名".cu"。
右键打开的项目名称–>生成依赖项–>生成自定义–>勾选CUDA v12.1。
右键打开的项目名称–>属性,在VC++目录中加入变量:(路径取决于自己安装CUDA的位置)
包含目录为:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\include
库目录:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\lib\x64
然后选择连接器–>输入–>附加依赖项中添加以下库文件:(注意不要有空格)
cublas.lib
cuda.lib
cudadevrt.lib
cudart.lib
cudart_static.lib
右键包含main函数的.cu文件,选择属性->配置属性,项类型中选择cuda c++。
按下F5运行代码,完成测试。
文章浏览阅读663次,点赞8次,收藏15次。显示状态文本end– 注册脚本回调方法xhr:send() – 发送请求end– 测试Get的标签local itemGet = cc.MenuItemLabel:create(labelGet) – 菜单标签itemGet:registerScriptTapHandler(onMenuGetClicked) – 菜单点击事件menuRequest:addChild(itemGet) – 添加菜单项–Post。
文章浏览阅读3.1k次,点赞7次,收藏9次。nested exception is feign.RetryableException: Incomplete output stream executing POST http://_incomplete output stream executing post
文章浏览阅读487次。密码登录完整的代码,方可运行;可提供运行操作视频!适合小白!
文章浏览阅读179次。Episode 178 ofThe SitePoint Podcastis now available! This week our regular interview host Louis Simoneau (@rssaddict) interviews Giovanni Difeterici (@giodif) about his new book for SitePoint, The W..._podcast web
文章浏览阅读586次,点赞8次,收藏15次。NumPy(Numerical Python)是Python编程语言的一个扩展库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。NumPy是科学计算中一个重要的库,被广泛应用于进行数值计算的各个科学领域,是许多高级数学运算和机器学习库的基础框架。NumPy提供了一个高性能的多维数组对象ndarray,及对这些数组执行的快速操作。这些数组的数据结构可以帮助Python处理大量数据,因此NumPy在大数据分析和深度学习中扮演着核心角色。
文章浏览阅读225次。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */clas
文章浏览阅读588次。1.数据链路层数据链路层的主要功能包括:· 接收来自处理层的报文,重新封装后交给物理层,或者把物理层接收到的报文界封装后交给处理层。· 为TLP报文产生LCRC 。· 通过ACK/NAK协议实现传输保证传输,并实现传输重试。· 流量控制(Flow Control)· 电源管理1.1 数据链路层的报文格式数据链路层会给接收到的处理层的报文增加一个序列号,并产生LCRC来保证报文的正确性,其格式如下:..._pcie sequence_num
文章浏览阅读679次,点赞5次,收藏6次。在不同应用领域中,嵌入式系统的执行装置一般是不同的,应该根据具体的应用场合和系统所要求实现的功能选择不同的设备和执行装置。是一段嵌入式目标代码中的程序,系统复位后首先执行,相当于用户的主程序,用户的其他应用程序都建立在OS之上;是一个标准的内核,它将CPU时钟、中断、I/O、定时器等资源都封装起来,留给用户的是一个标准的API函数接口。文件的元数据,也就是文件的相关信息,和文件本身是两个不同 的概念。它包含的是诸如文件的大小、拥有者、创建时间、磁盘位置等和文件相关的信息。总之,“一切皆文件”。
文章浏览阅读845次。本专栏是计算机视觉方向论文收集积累,时间:2021年7月19日,来源:paper digest欢迎关注原创公众号【计算机视觉联盟】,回复【西瓜书手推笔记】可获取我的机器学习纯手推笔记!直达笔记地址:机器学习手推笔记(GitHub地址)1, TITLE:Optical Inspection of The Silicon Micro-strip Sensors for The CBM Experiment Employing Artificial IntelligenceAUTHO..._a survey on deep domain adaptation and tiny object detection challenges, tec
文章浏览阅读384次。JAVA毕业设计个人财务管理系统计算机源码+lw文档+系统+调试部署+数据库。前端技术:Layui、HTML、CSS、JS、JQuery等技术。JSP超市进销存系统的设计与实现sqlserver。ssm攀枝花市房屋租售信息管理平台的设计与实现。ssm基于个人阅读习惯的个性化推荐系统研究。ssm基于SSM框架的学习资料校内共享平台。ssm基于javaweb的家庭财务管理系统。
文章浏览阅读377次。N:边数, V:节点数, s:节点的特征维度目的,将节点i的所有相邻节点的特征求和聚集起来,作为i的特征表示 def forward(self, H, X_node): # H : (N, s) -> (V, s) # X_node : (N, ) mask = torch.stack([X_node] * self.V, 0) # (V, N) mask = mask.float() - torch.unsq..._矩阵运算实现消息聚合和传递
文章浏览阅读5.3k次。freemarker的简单使用_freemarker模板引擎