亚马逊AWS官方博客
新增 – 适用于 Windows 的 Amazon EC2 Elastic GPU
作者:Randall | 原文链接
今天,我们高兴地宣布,适用于 Windows 的 Amazon EC2 Elastic GPU 正式推出。Elastic GPU 是一种 GPU 资源,可以挂载到 Amazon Elastic Compute Cloud (EC2) 实例来提升应用程序的图形性能。Elastic GPU 提供 medium (1GB)、large (2GB)、xlarge (4GB) 和 2xlarge (8GB) 几种大小,可以作为 G3 或 G2 等 GPU 实例类型 (用于 OpenGL 3.3 应用程序) 的成本更低的替代方案。您可以将 Elastic GPU 用于多种实例类型,灵活地为应用程序选择适当的计算、内存和存储资源,使之达到平衡。您现在就可以在 us-east-1 和 us-east-2 区域预配置 Elastic GPU。
对于 eg1.medium,Elastic GPU 的起始价仅为每小时 0.05 USD,即一小时五美分。如果我们将该 Elastic GPU 挂载到 t2.medium (0.065 USD/小时),一个使用 GPU 的实例每小时的总花费不到 12 美分。以前,最便宜的图形工作站 (G2/3 级) 的成本是每小时 76 美分。由此可见,新服务将使运行特定图形工作负载的成本降低 80% 以上。
何时应当使用 Elastic GPU?
Elastic GPU 最适合需要少量或间歇性附加 GPU 能力来实现图形加速和支持 OpenGL 的应用程序。Elastic GPU 支持 OpenGL 3.3 及更低版本的 API 标准,并且扩展的 API 支持不久也将推出。
Elastic GPU 并非实例的硬件部分。它们通过您子网中的 Elastic GPU 网络接口挂载到实例上,当您启动使用 Elastic GPU 的实例时,便会创建这么一个网络接口。下图显示了 Elastic GPU 是如何挂载的。
因为 Elastic GPU 是通过网络挂载的,所以必须预配置一个有足够网络带宽的实例来支持您的应用程序,这一点很重要。而确保实例安全组允许端口 2007 上的流量也同样重要。
任何可以使用 OpenGL API 的应用程序都可以利用 Elastic GPU,因此 Blender、Google Earth、SIEMENS SolidEdge 等都可以使用 Elastic GPU 来运行。甚至包括坎巴拉太空计划 (Kerbal Space Program)!
好了,现在我们知道了什么时候使用 Elastic GPU 及其工作原理,下面我们来启动一个实例并使用一个 Elastic GPU。
使用 Elastic GPU
首先,导航到 EC2 控制台并单击“Launch Instance”。接下来,选择一个 Windows AMI,如“Microsoft Windows Server 2016 Base”。然后,选择一个实例类型。确保选择“Elastic GPU”部分并分配一个 eg1.medium (1GB) Elastic GPU。
我们还将在高级详细信息部分包含一些用户数据。我们将编写一个简短的 PowerShell 脚本来下载并安装 Elastic GPU 软件。
<powershell>
Start-Transcript -Path "C:\egpu_install.log" -Append
(new-object net.webclient).DownloadFile('http://ec2-elasticgpus.s3-website-us-east-1.amazonaws.com/latest','C:\egpu.msi')
Start-Process "msiexec.exe" -Wait -ArgumentList "/i C:\egpu.msi /qn /L*v C:\egpu_msi_install.log"
[Environment]::SetEnvironmentVariable("Path",$env:Path + ";C:\Program Files\Amazon\EC2ElasticGPUs\manager\",[EnvironmentVariableTarget]::Machine)
Restart-Computer -Force
</powershell>
该软件将所有 OpenGL API 调用都发送到挂载的 Elastic GPU。
接下来,我们将仔细检查,以确保我的安全组已对 VPC 开放了 TCP 端口 2007,这样 Elastic GPU 才能与我的实例连接。最后,我们单击启动,等待实例和 Elastic GPU 完成预配置。完成这项工作最好的方法是创建一个可以挂载到该实例的单独的 SG。
您可以观看下面有关启动过程的动画。
或者,我们也可以通过 AWS CLI 使用如下的简短调用来进行启动:
$aws ec2 run-instances --elastic-gpu-specification Type=eg1.2xlarge \
--image-id ami-1a2b3c4d \
--subnet subnet-11223344 \
--instance-type r4.large \
--security-groups "default" "elasticgpu-sg"
然后,按照此处的 Elastic GPU 软件安装说明操作。
现在,通过查看任务栏中 Elastic GPU 的状态,可以看出 Elastic GPU 在正常运转并且已挂载。
我们欢迎您对该服务提出任何反馈意见,您可以单击 GPU 状态框左下角的反馈链接,让我们了解您使用 Elastic GPU 的体验。
Elastic GPU 演示
好了,我们已预配置了实例并挂载了 Elastic GPU。我在 AWS 的队友希望我谈谈可以运行哪些令人惊奇的精彩 3D 应用程序,但当我了解到 Elastic GPU 之后,我首先想到的就是坎巴拉太空计划 (KSP),因此我准备用它进行一次简短测试。毕竟,如果您不能将试飞员 Jebediah Kerman 送入太空,还要这套软件做什么呢?我下载了 KSP 并添加了发射参数 -force-opengl
,以确保我们将使用 OpenGL 进行渲染。下面您会看到我在建造太空船方面糟糕的尝试 – 过去我的表现可要好很多。考虑到我们使用的网络采用的是有损耗的远程桌面协议,情况还算顺利。
我本来想展示一张火箭发射的照片,但它甚至还没离开地面就意外地迅速解体了。我只好从头再来。
在此期间,我可以检查我的 Amazon CloudWatch 指标,看看在我玩游戏的这一小段时间里使用了多少 GPU 内存。
合作伙伴、定价和文档
为了继续为我们的客户打造出色体验,我们的 3D 软件合作伙伴 (如 ANSYS 和 Siemens) 正打算在 Elastic GPU 上利用 OpenGL API,目前他们正在认证 Elastic GPU 是否适合其软件。您可在此处了解有关我们的合作伙伴关系的更多信息。
可在此处找到有关 Elastic GPU 定价方面的信息。可在此处找到更多文档。
现在,我要失陪了,我还有几艘虚拟火箭要造。
– Randall