云服务器ECS:GPU计算型实例下
导读:云服务器ECS实例之GPU计算型实例下 咨询热线 4006-333-292
本文介绍如何在操作系统为Linux的GPU计算型实例中安装GRID驱动,并搭建桌面显示环境。以搭建TensorFlow深度学习框架为例详细介绍如何在gn5实例上搭建NGC环境。
背景信息
如果您的GPU计算型实例(gn5、gn5i、gn6v、vgn5i或gn6i实例)需要OpenGL图形支持,必须在实例上安装GRID驱动。GPU计算型实例自带的Nvidia GPU计算卡,如P100、P4、V100等,因为NVIDIA GRID License而限制了GPU图形功能,您可以使用NVIDIA官方发布的试用版GRID驱动满足使用OpenGL图形功能的需求。
前提条件
· 您需要创建一台GPU计算型实例,确保实例能访问公网。具体操作,请参考创建GPU计算型实例。
说明 建议您选择 公共镜像 中的镜像。如果您选择了 镜像市场 中预装NVIDIA驱动的镜像,创建实例后您必须按照此方法禁用Nouveau驱动:在 /etc/modprobe.d 目录下创建一个 nouveau.conf 文件,添加 blacklist nouveau。
·
· 在本地机器上已经安装了VNC连接软件,比如本示例中使用的VNC Viewer。
在Ubuntu 16.04 64-bit中安装GRID驱动
按以下方式安装GRID驱动。
1. 远程连接Linux实例。
2. 依次运行以下命令升级系统并安装KDE桌面。
试用
3.
apt-get update
apt-get upgrade
apt-get install kubuntu-desktop
4.
5. 运行reboot 重启系统。
6. 再次远程连接Linux实例,并运行以下命令下载NVIDIA GRID驱动包。
NVIDIA GRID驱动包中有多个系统的GRID驱动。Linux GRID驱动是NVIDIA-Linux-x86_64-390.57-grid.run。
7.
试用
8.
wget http://nvdia-driver-410.oss-cn-shenzhen.aliyuncs.com/NVIDIA-Linux-x86_64-410.39-grid.run
9.
10. 依次运行以下命令,并按界面提示安装NVIDIA GRID驱动。
试用
11.
chmod 777 NVIDIA-Linux-x86_64-410.39-grid.run
./NVIDIA-Linux-x86_64-410.39-grid.run
12.
13. 运行命令nvidia-smi 测试驱动安装结果。
如果返回以下类似结果,说明驱动已经成功安装。
14.
15. 按以下步骤添加License服务器并激活License。
i. 切换到/etc/nvidia目录:cd /etc/nvidia。
ii. 创建gridd.conf文件:cp gridd.conf.template gridd.conf。
iii. 在gridd.conf文件中添加License服务器的信息。
说明 您需要向NVIDIA购买License后自行搭建License服务器。
iv.
试用
v.
ServerAddress=License服务器的IP
ServerPort=License服务器的端口(默认为7070)
FeatureType=2
EnableUI=TRUE
vi.
16. 运行命令安装x11vnc。
试用
17.
apt-get install x11vnc
18.
19. 运行命令lspci | grep NVIDIA 查询GPU BusID。
本示例中,查询到的GPU BusID为00:07.0。
20.
21. 配置X Server环境并重启。
i. 运行命令nvidia-xconfig --enable-all-gpus --separate-x-screens。
ii. 编辑/etc/X11/xorg.conf,在Section "Device" 段添加GPU BusID,如本示例中为BusID "PCI:0:7:0"。
iii. 运行reboot 重启系统。
在Ubuntu 16.04 64-bit中测试GRID驱动
按以下步骤测试GRID驱动。
1. 运行命令安装GLX测试程序。
试用
2.
apt-get install mesa-utils
3.
4. 运行命令startx 启动X Server。
说明
5.
· 如果没有startx 命令,执行apt-get install xinit 命令安装。
· startx 启动时可能会提示hostname: Name or service not known。这个提示不会影响X Server启动。您可以运行命令hostname 查得主机名后,再修改/etc/hosts文件,将127.0.0.1 后的hostname 改为本机的hostname。
6. 开启一个新的SSH客户端终端,运行命令启动x11vnc。
试用
7.
x11vnc -display :1
8.
如果看到如下图所示的信息,表示x11vnc已经成功启动。此时,您能通过VNC Viewer等VNC远程连接软件连接实例。
9.
10. 登录ECS控制台,在实例所在安全组中添加安全组规则 ,允许TCP 5900端口的入方向访问。
11. 在本地机器上,使用VNC Viewer等VNC远程连接软件,通过实例公网IP地址:5900 连接实例,进入KDE桌面。
12. 按以下步骤使用glxinfo 命令查看当前GRID驱动支持的配置。
i. 开启一个新的SSH客户端终端。
ii. 运行命令export DISPLAY=:1。
iii. 运行命令glxinfo –t 列出当前GRID驱动支持的配置。
13. 按以下步骤使用glxgears 命令测试GRID驱动。
i. 在KDE桌面上,右键单击桌面,并选择Run Command。
ii. 运行glxgears 启动齿轮图形测试程序。 如果出现如下图所示的窗口,表明GRID驱动正常工作。
在CentOS 7.3 64-bit中装GRID驱动
按以下方式安装GRID驱动。
1. 远程连接Linux实例。
2. 依次运行以下命令升级系统并安装KDE桌面。
试用
3.
yum update
yum install kernel-devel
yum groupinstall "KDE Plasma Workspaces"
4.
5. 运行reboot 重启系统。
6. 再次远程连接Linux实例,并运行以下命令下载并解压NVIDIA GRID驱动包。
NVIDIA GRID驱动包中包含多个系统的GRID驱动,其中,LINUX GRID驱动是NVIDIA-Linux-x86_64-390.57-grid.run。
7.
试用
8.
wget http://nvdia-driver-410.oss-cn-shenzhen.aliyuncs.com/NVIDIA-Linux-x86_64-410.39-grid.run
9.
10. 按以下步骤关闭nouveau驱动。
i. 运行vim /etc/modprobe.d/blacklist.conf,添加blacklist nouveau。
ii. 运行vim /lib/modprobe.d/dist-blacklist.conf,添加以下内容。
试用
iii.
blacklist nouveau
options nouveau modeset=0
iv.
v. 运行mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img。
vi. 运行dracut /boot/initramfs-$(uname -r).img $(uname -r)。
11. 运行reboot 重启系统。
12. 依次运行以下命令,并按界面提示安装NVIDIA GRID驱动。
试用
13.
chmod 777 NVIDIA-Linux-x86_64-410.39-grid.run
./NVIDIA-Linux-x86_64-410.39-grid.run
14.
15. 运行命令nvidia-smi 测试驱动是否安装成功。
如果返回以下类似结果,说明驱动已经成功安装。
17. 按以下步骤添加License服务器并激活License。
i. 切换到/etc/nvidia目录:cd /etc/nvidia。
ii. 创建gridd.conf文件:cp gridd.conf.template gridd.conf。
iii. 在gridd.conf文件中添加License服务器的信息。
说明 您需要向NVIDIA购买License后自行搭建License服务器。
iv.
试用
v.
ServerAddress=License服务器的IP
ServerPort=License服务器的端口(默认为7070)
FeatureType=2
EnableUI=TRUE
vi.
18. 安装x11vnc。
试用
19.
yum install x11vnc
20.
21. 运行命令lspci | grep NVIDIA 查询GPU BusID。
本示例中,查询到的GPU BusID为00:07.0。
22.
23. 配置X Server环境:
i. 运行命令nvidia-xconfig --enable-all-gpus --separate-x-screens。
ii. 编辑/etc/X11/xorg.conf,在Section "Device" 段添加GPU BusID,如本示例中为BusID "PCI:0:7:0"
24. 运行reboot 重启系统。
在CentOS 7.3 64-bit中测试GRID驱动
按以下步骤测试GRID驱动。
1. 运行命令startx 启动X Server。
2. 开启一个新的SSH客户端终端,运行命令启动x11vnc。
试用
3.
x11vnc -display :0
4.
如果看到如下图所示的信息,表示x11vnc已经成功启动。此时,您能通过VNC Viewer等VNC远程连接软件连接实例。
5.
6. 登录ECS管理控制台,在实例所在安全组中添加安全组规则 ,允许TCP 5900端口的入方向访问。
7. 在本地机器上,使用VNC Viewer等VNC远程连接软件,通过实例公网IP地址:5900 连接实例,进入KDE桌面。
8. 按以下步骤使用glxinfo 命令查看当前GRID驱动支持的配置。
i. 开启一个新的SSH客户端终端。
ii. 运行命令export DISPLAY=:0。
iii. 运行命令glxinfo –t 列出当前GRID驱动支持的配置。
9. 按以下步骤使用glxgears 命令测试GRID驱动。
i. 在KDE桌面上,右键单击桌面,并选择Run Command。
ii. 运行glxgears 启动齿轮图形测试程序。 如果出现如下图所示的窗口,表明GRID驱动正常工作。
背景信息
NGC(NVIDIA GPU CLOUD)是NVIDIA开发的一套深度学习生态系统,可以使开发者免费访问深度学习软件堆栈,建立适合深度学习的开发环境。
目前NGC在阿里云gn5实例作了全面部署,并且在镜像市场提供了针对NVIDIA Pascal GPU优化的NGC容器镜像。通过部署镜像市场的NGC容器镜像,开发者能简单快速地搭建NGC容器环境,即时访问优化后的深度学习框架,大大缩减产品开发以及业务部署的时间,实现开发环境的预安装;同时支持调优后的算法框架,并且保持持续更新。
NGC网站 提供了目前主流深度学习框架不同版本的镜像(比如Caffe、Caffe2、CNTK、MxNet、TensorFlow、Theano、Torch),您可以选择需要的镜像搭建环境。
前提条件
在开始搭建TensorFlow环境之前,必须先完成以下工作:
· 注册阿里云账号,并完成 实名认证 。
· 登录 NGC网站,注册NGC账号。
· 登录 NGC网站,获取NGC API key并保存到本地。登录NGC容器环境时需要验证您的NGC API Key。
操作步骤
1. 创建gn5实例。参考 创建ECS实例 创建一台gn5实例,注意以下配置信息:
· 地域:只能选择 华北1、华北2、华北3、华北5、华东1、华东2、华南1。
· 实例:选择gn5实例规格。
· 镜像:单击 镜像市场,在弹出对话框里,找到 NVIDIA GPU Cloud VM Image 后,单击 使用。
· 公网带宽:选择 分配公网IP地址。
说明 如果这里不分配公网IP地址,则在实例创建成功后,绑定EIP地址。
·
· 安全组:选择一个安全组。安全组里必须开放 TCP 22 端口。如果您的实例需要支持HTTPS或 DIGITS 6 服务,必须开放TCP 443(用于HTTPS)或TCP 5000(用于DIGITS 6)端口。
ECS实例创建成功后,登录ECS管理控制台,记录实例的公网IP地址。
2. 连接ECS实例:根据创建实例时选择的登录凭证,使用密码验证连接ECS实例 或者 使用SSH密钥对验证连接ECS实例 。
3. 按界面提示输入NGC官网获取的NGC API Key后按回车键,即可登录NGC容器环境
4.
5. 运行 nvidia-smi。您能查看当前GPU的信息,包括GPU型号、驱动版本等,如下图所示。
6.
7. 按以下步骤搭建TensorFlow环境:
i. 登录 NGC网站,找到TensorFlow镜像页面,获取 docker pull 命令。
iii. 下载TensorFlow镜像。
试用
iv.
docker pull nvcr.io/nvidia/tensorflow:18.03-py3
v.
vi. 查看下载的镜像。
试用
vii.
docker image ls
viii.
ix. 运行容器,完成TensorFlow开发环境的部署。
试用
x.
nvidia-docker run --rm -it nvcr.io/nvidia/tensorflow:18.03-py3
xii.
8. 选择以下任一种方式测试TensorFlow:
· 简单测试TensorFlow。
试用
·
$python
·
试用
·
>>> import tensorflow as tf>>> hello = tf.constant('Hello, TensorFlow!')>>> sess = tf.Session()>>> sess.run(hello)
·
如果TensorFlow正确加载了GPU设备,返回结果如下图所示。
· 下载TensorFlow模型并测试TensorFlow。
试用
·
git clone https://github.com/tensorflow/models.gitcd models/tutorials/image/alexnet
python alexnet_benchmark.py --batch_size 128 --num_batches 100
·
9. 保存TensorFlow镜像的修改。否则,下次登录时配置会丢失。
【阿里云,阿里巴巴集团旗下云计算品牌,全球卓越的云计算技术和服务提供商。海商(www.hishop.com.cn)作为阿里云湖南唯一授权服务中心,国内知名商城系统及商城网站建设提供商,专为企业提供专业完善电商整体解决方案、微商云、视频云、医疗云等,咨询阿里云服务器详情可电联:18684778716(微信同号)】