前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >server2019+vs2022+cuda11.4测试CUDA Samples示例

server2019+vs2022+cuda11.4测试CUDA Samples示例

原创
作者头像
Windows技术交流
修改2023-10-16 15:04:23
3.2K0
修改2023-10-16 15:04:23
举报
文章被收录于专栏:Windows技术交流Windows技术交流

先安装grid驱动,然后安装cuda环境时注意不要安装显卡驱动,否则会冲掉grid驱动

先安装grid驱动,然后安装cuda环境时注意不要安装显卡驱动,否则会冲掉grid驱动

先安装grid驱动,然后安装cuda环境时注意不要安装显卡驱动,否则会冲掉grid驱动

渲染型机器,有包含grid驱动和license的grid公共镜像可以选择,或者支持渲染的计算型GPU机器,云市场有相关grid收费镜像可以选择

如果选计算型+云市场grid收费镜像,条件苛刻且镜像费用不低,一般建议选购渲染型机器用免费的grid公共镜像

在grid镜像基础上可以安装cuda环境(主要安装时不要安装显卡驱动,否则会冲掉grid公共镜像里的驱动)

这篇文档耗了大量精力试错、排错,最后录了视频:https://cloud.tencent.com/developer/video/75032

文档只是引子,排错才看底子,给你文档你不一定能成功

我花费了大量时间精力融会贯通入门级别那道坎来方便有缘人,希望对你有所帮助

操作系统:Windows Server 2019 数据中心版 64位 中文版 GRID13.0(云市场镜像)

实例规格:GPU计算型GN10X | GN10X.2XLARGE40

显卡类型:Tesla V100 SXM2 32GB (Tesla V100 NVLink 32GB)

vs2022:https://visualstudio.microsoft.com/zh-hans/ 社区版即可

安装时记得勾选v142 、v141,有其他的也选下

v143–>VS2022

v142–>VS2019

v141–>VS2017

v140–>VS2015

v120–>VS2013

由于镜像中已有grid13.0渲染型驱动,安装cuda应该选什么版本,需要看grid的文档:https://docs.nvidia.com/grid/

点一下13.0跳转到https://docs.nvidia.com/grid/13.0/index.html

然后在右上侧搜索框搜cuda,能看到是11.4,点一下会看到更详细的显卡型号级别的支持情况

https://www.nvidia.cn/design-visualization/nvlink-bridges/

NVIDIA®NVLink™是世界首项高速 GPU 互连技术,与传统的 PCIe 系统解决方案相比,能为多 GPU 系统提供更快速的替代方案。NVLink 技术通过连接两块 NVIDIA®显卡,能够实现显存和性能扩展1,从而满足最大视觉计算工作负载的需求。

https://cloud.tencent.com/developer/article/2167025

https://zhuanlan.zhihu.com/p/95179946

上面多啰嗦了一部分nvlink

从https://docs.nvidia.com/grid/13.0/index.html 中我们看到cuda的支持情况如下:

有些显卡是需要grid13.1往后的13.x,13.0是不行的

而我所选的Tesla V100 SXM2 32GB (Tesla V100 NVLink 32GB)13.0和13.x都可以,cuda版本是11.4

GPU

vGPU Mode

Debuggers

Profilers

NVIDIA A10

Time-sliced

13.0 only: -Since 13.1: ✓

NVIDIA A16

Time-sliced

13.0 only: -Since 13.1: ✓

NVIDIA A30

Time-sliced

MIG-backed

13.0 only: -Since 13.1: ✓

NVIDIA A40

Time-sliced

13.0 only: -Since 13.1: ✓

NVIDIA A100 HGX 40GB

Time-sliced

MIG-backed

13.0 only: -Since 13.1: ✓

NVIDIA A100 PCIe 40GB

Time-sliced

MIG-backed

13.0 only: -Since 13.1: ✓

NVIDIA A100 HGX 80GB

Time-sliced

MIG-backed

13.0 only: -Since 13.1: ✓

NVIDIA A100 PCIe 80GB

Time-sliced

MIG-backed

13.0 only: -Since 13.1: ✓

NVIDIA RTX A5000

Time-sliced

13.0 only: -Since 13.1: ✓

NVIDIA RTX A6000

Time-sliced

13.0 only: -Since 13.1: ✓

Tesla T4

Time-sliced

Quadro RTX 6000

Time-sliced

Quadro RTX 6000 passive

Time-sliced

Quadro RTX 8000

Time-sliced

Quadro RTX 8000 passive

Time-sliced

Tesla V100 SXM2

Time-sliced

Tesla V100 SXM2 32GB

Time-sliced

Tesla V100 PCIe

Time-sliced

Tesla V100 PCIe 32GB

Time-sliced

Tesla V100S PCIe 32GB

Time-sliced

Tesla V100 FHHL

Time-sliced

✓ Feature is supported

- Feature is not supported

然后去cuda官网下载11.4即可,https://developer.nvidia.com/cuda-toolkit-archive

cuda安装有关键注意事项:千万别勾选Display Driver

调试vs2022+cuda11.4,需要参考3个文档

文档只是引子,排错才看底子,给你文档你不一定能成功

https://zhuanlan.zhihu.com/p/399189415,这篇文档告诉我安装cuda后有测试用例,不用自己去找测试用例,并且知道测试用例是基于visual studio c++环境的,并且至少得是vs2019,但是我去vs官网找不到vs2019安装文件,只有vs2022了,只能硬着头皮安装vs2022,安装的时候我系统盘剩余空间没多少了,就需要啥安装啥,不需要的不勾选,这样一来省空间,二来也安装快一些,毕竟是公网下载安装,勾选得太多反而不好

安装vs2022时,选这2项即可

安装完成验证c++代码运行的话,我用的这个demo:https://blog.csdn.net/wangduanqiugao/article/details/102741544

代码语言:javascript
复制
#include <atlstr.h>
#include <string.h>
#include <iostream>
using namespace std;
 
bool ChineseToUnicode(CString cstr, string & str)
{
    int i = 0;
    int strlen = 0;
    int hexlen = 0;
    long hexlong = 0;
 
    strlen = cstr.GetLength();
    if (strlen <= 0)
    {
        return false;
    }
 
    wchar_t* wchs = new wchar_t[strlen + 1];
    memset(wchs, 0, sizeof(wchar_t) * (strlen + 1));
    wcscpy_s(wchs, strlen + 1, cstr.GetBuffer(strlen));
 
    hexlen = strlen * 7;
    char* hexstr = new char[hexlen + 1];
    memset(hexstr, 0, hexlen + 1);
 
    char tchar[7];
    wchar_t* szHex = wchs;
 
    for (i = 0; i < strlen; i++)
    {
	hexlong = (long)(*szHex++);
	sprintf_s(tchar, "\\u%04x", hexlong);
	strcat_s(hexstr, hexlen, tchar);
    }
 
    str = (string)hexstr;
 
    if (wchs)
    {
	delete[] wchs;
    }
    if (hexstr)
    {
	delete[] hexstr;
    }
    return true;
}
 
int main()
{
    CString m_Chinese = _T("望断秋高和待雪初平");
    string  m_ChineseToUnicode;
 
    //ChineseToUnicode
    ChineseToUnicode(m_Chinese, m_ChineseToUnicode);
 
    wcout.imbue(locale("chs"));
    wcout << m_Chinese.GetString() << endl;
    cout << "ChineseToUnicode:" << "\n" << m_ChineseToUnicode << "\n\n\n";
    getchar();
}

如果安装过程中没勾选v142 、v141,事后补上也行,如何补?运行appwiz.cpl

双击Visual Studio Community 2022

如下图勾选v142(我没有v141即vs2017项目的需求,所以没选v141;我有尝试过,当我勾选v141时,v143也自动打√了,至于v143,如果不勾选v141,它默认是未勾选的,但我安装vs2022时就是选的c++,v143理论上已经有了,无需勾选,假如真的没有,如v142的法,炮制即可;如果勾选v141,要注意调整属性页里的Windows SDK版本为10.0.22000.0)

不论是安装过程还是修改过程,都要注意下磁盘空间,确保剩余空间足够

确认磁盘空间没问题后,就点右下角的修改按钮,然后耐心等待完成

完成后点启动

假如我也安装了v141,即可以支持vs2017项目,那cuda samples里的vs2017项目也能用上了,但是请注意,这里有几个注意事项:

1、打开.sln的时候会有提示升级,选不升级

不论是vs2017.sln还是vs2019.sln,都选不升级

C:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.4

如果不小心点错了,也没关系

在项目上右键属性,自己调整 平台工具集,选择对应的v14x即可,选好后就可以调试了

v143–>VS2022

v142–>VS2019

v141–>VS2017

v140–>VS2015

v120–>VS2013

2、打开项目的时候如果有如下报错,参考https://www.cnblogs.com/bohrchen/p/16363951.html 解决

上述报错解决后,调试即可

.sln里的项目很多,试了vs2017.sln和vs2019.sln里的asyncAPI、matrixMul等都可以,没有全试。

Tesla V100 SXM2 32GB (Tesla V100 NVLink 32GB) + server2019 + grid13.0 + cuda11.4 (去掉驱动,要不然会顶替掉grid13.0) 目前测试ok,计算(cuda)和渲染(blender)两种业务场景都正常。

在跑cuda测试的时候,你可以调用C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe来查看GPU利用率,cmd命令行:

代码语言:javascript
复制
cd /d "C:\Program Files\NVIDIA Corporation\NVSMI\"
nvidia-smi.exe -l 2
(2秒刷新一次)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档