一、背景
本文适用于在AWS中国区使用G4实例进行3D图像处理,并通过NICE-DCV协议远程控制。
二、常见驱动类型
AWS上的GPU可以安装如下类型的驱动。
1、Tesla驱动
Tesla 驱动程序这些驱动程序主要用于将 GPU 用于计算任务的计算工作负载,例如适用于机器学习的并行浮点计算,以及适用于高性能计算应用的快速傅里叶变换。
支持的实例:
- 支持G4实例(T4 GPU)
- 支持P3实例(V100GPU)
可以使用的指令集:
- OpenCL
- NVIDIA CUDA 和相关库(例如,cuDNN、TensorRT、nvJPEG 和 cuBLAS)
- 用于视频编码的 NVENC 和用于视频解码的 NVDEC
驱动模式:Tesla 驱动程序配置为在 Tesla Compute Cluster (TCC) 模式下运行。在 TCC 模式下,该卡专用于计算工作负载。另外,此时Nvidia Control Panel控制面板不生效。
2、Grid 驱动
Grid驱动程序经过认证,可针对渲染 3D 模型或高分辨率视频等内容的专业可视化应用程序,提供最佳性能。您可以将 GRID 驱动程序配置为支持两种模式。Quadro 虚拟工作站的每个 GPU 可支持四个 4K 显示器。GRID vApps 提供 RDSH App 托管功能。
支持的实例:
- 支持G4实例(T4 GPU)
- 支持P3实例(V100GPU)—— 注:需要Marketplace上的特殊预装镜像
可以使用的指令集:
- DirectX、Direct2D、DirectX Video Acceleration、DirectX Raytracing
- OpenCL、OpenGL 和 Vulkan
- NVIDIA CUDA 和相关库(例如,cuDNN、TensorRT、nvJPEG 和 cuBLAS)
- 用于视频编码的 NVENC 和用于视频解码的 NVDEC
驱动模式:GRID 驱动程序配置为在 Windows Display Driver Model (WDDM) 模式下运行。在 WDDM 模式下,该卡同时支持计算和图形工作负载。
3、Gaming 驱动
这些驱动程序包含针对游戏的优化,并经常更新以提供性能增强。它们支持每个 GPU 单个 4K 显示器。
支持的实例:
- 仅支持G4实例(T4 GPU)
- 不能用于P3实例(V100 GPU)
驱动模式:Gaming驱动程序配置为在 Windows Display Driver Model (WDDM) 模式下运行。在 WDDM 模式下,该卡同时支持计算和图形工作负载。
需要注意的是,Gaming驱动是给游戏做了优化,但是显示器支持的数量少比Grid驱动更少,仅支持1个4K显示器。而Grid驱动是支持4个4K显示器。
综上所述,在进行三维图像处理、建模等显示计算任务时候,建议采用Grid驱动,而不是采取Gaming驱动。本文将只描述Grid驱动的安装,不描述Gaming驱动安装。
二、远程管理工具
常用的Windows远程管理工具有如下几种。
1、RDP协议
RDP是微软自带的远程桌面协议,无需配置,简单方便,支持声音传输、Mic采集等。加密强度较低,默认是不支持3D加速的。
2、VNC协议
开源的图形协议,通过传输画面变化量的方式工作,可以支持各种3D画面显示。有很多开源的实现,例如RealVNC,TightVNC等。开源和免费版本一般不支持加密等特性,且不能传输音频。
3、NICE-DCV
适用于图形加速环境的商用解决方案,常用于行业专用软件的远程访问,在能源、设计等行业有广泛的使用场景。NICE DCV在AWS的EC2上使用是免费的,需要安装特定版本,即可并配置S3上的License策略,即可获得NICE DCV授权。
三、配置G4实例
1、安装并使用DCV连接
(1)配置IAM策略和角色
NICE DCV使用中国区的一个S3 Bucket桶作为license校验的源,因此需要给当前账户配置IAM策略和角色。
进入IAM模块,点击左侧菜单的Policy,点击Create Policy创建策略,点击第二个标签页“JSON”直接进入代码模式,并输入如下代码。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:GetObject",
"Resource": "arn:aws-cn:s3:::dcv-license.cn-north-1/*"
}
]
}
点击查看策略,在名称处输入策略名称为“NICE-DCV”,点击创建策略按钮完成策略创建。
进入IAM模块,点击左侧菜单的角色,点击Create Role创建角色,选择页面最上方选择AWS产品,使用案例选择EC2,点击下一步权限按钮。
在权限设置界面,在筛选策略的搜索框中,输入前文创建的策略名称“NICE-DCV”,即可搜索出来策略。点击策略前方的选择框,选中这个策略,点击下一步标签按钮继续。
点击下一步审核按钮继续。在审核界面,角色名称位置,输入NICE-DCV-Role作为角色名称。点击创建角色,完成角色创建。
进入EC2界面,选中G4实例的EC2,点击Actions,选择修改IAM Role。如下截图。
在下拉框中,选择前文创建的NICE-DCV角色,并点击应用按钮。
由此完成IAM角色的挂载。
(2)下载并安装DCV Server端
从这里下载到Windows,双击安装。
安装过程中,可能遇到一系列选项。在组建安装位置,选择完全安装所有组件。
在启动服务界面,不要选中选项。
在配置登录界面,留空不要选中,默认它允许Administrator登录的选项保持不变。这里需要注意, 通过NICE DCV登录的用户需要在安装时候准确填写在如下对话框。如果后期新建一个Windows用户,即便赋予管理员组的权限,也是不能通过DCV登录的。因此下图中,用户名填写为Administrator,后续DCV认证就需要继续使用这个用户名。
点击下一步一路继续,安装完成。
(3)放行EC2安全规则组
修改本EC2的安全规则组,放行用于NICE DCV的TCP协议8443端口,来源地址建议填写为公司网络的出口IP,缩小授权范围,提升安全性。
(4)下载DCV Client端并登录
Windows客户端从这里下载。MacOS客户端从这里下载。下载完毕后安装运行。
在DCV客户端窗口内,输入本EC2的公网地址。如下截图。
第一次登录本服务器时候,DCV会提示是否信任,点击Proceed继续。
在用户名密码窗口内,输入本EC2的Administrator密码。即可连接成功。如下截图。
至此NICE DCV安装完成,远程RDP即可断开转而用DCV做后续配置。
2、安装Tesla驱动
(1)下载并安装驱动
从这里下载用于Windows Server 2016/2019的Tesla驱动。
下载后双击启动安装,一路继续,来到安装选项位置,点击Express快速安装继续。
安装完成。
至此Tesla驱动安装完成。
(2)优化GPU功耗和频率
以管理员身份打开Powershell,执行如下命令:
cd "C:\Program Files\NVIDIA Corporation\NVSMI"
./nvidia-smi -ac "5001,1590"
注意:以上命令只对G4有效。对于其他GPU实例,请查询AWS官方文档,设置正确的频率。如果设置错误将导致CPU工作不正常。
返回结果如下:
PS C:\> cd "C:\Program Files\NVIDIA Corporation\NVSMI"
PS C:\Program Files\NVIDIA Corporation\NVSMI> ./nvidia-smi -ac "5001,1590"
Applications clocks set to "(MEM 5001, SM 1590)" for GPU 00000000:00:1E.0
All done.
PS C:\Program Files\NVIDIA Corporation\NVSMI>
设置完成效果如下截图。
至此GPU频率调整完成。不需要重启,继续后续安装。
(3)Windows组件安装
点击开始菜单,点击服务器管理。如下截图。
点击添加组件。如下截图。
点击Role-based模式。如下截图。
选中本机,点击下一步继续。如下截图。
在Role界面,保持所有功能项目不变化,直接点击下一步继续。如下截图。
在下一步功能界面上,选择 Media Foundation 和 Quality Windows Audio Video Experience。如下截图。
至此Windows组件安装完成。
(4)锁定驱动工作模式
以管理员身份进入Powershell,执行如下命令。
New-ItemProperty -Path "HKLM:\SOFTWARE\NVIDIA Corporation\Global\GridLicensing" -Name "NvCplDisableManageLicensePage" -PropertyType "DWord" -Value "1"
执行完毕效果如下图。
3、安装Grid图形驱动
(1)安装驱动
从这里下载用于Windows Server 2016/2019的Grid驱动。下载完毕后,双击启动安装程序。
在安装模式选项位置,选择Express快速安装。如下截图。
安装完毕后,不需要重启,已经可以双显示器启动。如下截图。
(2)禁用默认显卡
为了进一步提升性能,需要禁用系统默认显卡。进入设备管理器,找到显示适配器。点击右键选择禁用。如下截图。
默认显卡禁用完成。
(3)确认驱动运行正常
以管理员权限启动Powershell,执行如下命令。
cd "C:\Program Files\NVIDIA Corporation\NVSMI"
./nvidia-smi.exe
输出结果中,可以看到当前GPU的工作模式,如果是以Telsa纯GPU计算方式工作,则应该显示TCC。如果是以Grid方式运行三维图形,则应显示WDDM。如下图中红色框部分。
此外还可以执行如下命令查询驱动和GPU配置详细信息。(在上一步的相同目录下执行)
./nvidia-smi.exe -q
执行后显示结果如下。
至此驱动安装完毕。
四、测试3D图像加速
从这个网址下载测试程序Furmark。下载后双击运行。点击Stress开始施加压力测试。
运行后效果如下。
至此确认GPU以3D加速方式工作正常。
五、参考文档
https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/WindowsGuide/install-nvidia-driver.html#public-nvidia-driver