使用G4 Windows实例和NICE DCV运行3D设计程序

一、背景

本文适用于在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)激活Nvidia Grid虚拟应用

NVIDIA GRID™ 虚拟 PC (GRID vPC) 和虚拟应用程序 (GRID vApp)  的加速功能需要通过注册表打开。

New-ItemProperty -Path "HKLM:\SOFTWARE\NVIDIA Corporation\Global\GridLicensing" -Name "FeatureType" -PropertyType "DWord" -Value "0"
New-ItemProperty -Path "HKLM:\SOFTWARE\NVIDIA Corporation\Global\GridLicensing" -Name "IgnoreSP" -PropertyType "DWord" -Value "1"

设置完毕,效果如下图。

至此配置完成。

(3)禁用默认显卡

为了进一步提升性能,需要禁用系统默认显卡。进入设备管理器,找到显示适配器。点击右键选择禁用。如下截图。

默认显卡禁用完成。

(4)确认驱动运行正常

以管理员权限启动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