提交 25f86db6 编写于 作者: 学习_forever_go's avatar 学习_forever_go 提交者: Aston Zhang

更改了部分文字表述方式 (#361)

* fix some error in aws.md

* fix error in buy-gpu.md
上级 bc3eb88e
# 使用AWS运行代码
当本地机器的计算资源有限时,我们可以通过云计算服务获取更强大的计算资源来运行本书中的深度学习代码。本节将介绍如何在AWS(亚马逊的云计算服务)上申请实例并通过Jupyter笔记本运行代码。本节中的例子基于申请含一个K80 GPU的“p2.xlarge”实例和安装CUDA及相应GPU版本的MXNet。申请其他类型的实例或安装其他版本的MXNet的方法同本节类似。
当本地机器的计算资源有限时,我们可以通过云计算服务获取更强大的计算资源来运行本书中的深度学习代码。本节将介绍如何在AWS(亚马逊的云计算服务)上申请实例并通过Jupyter笔记本运行代码。本节中的例子有如下两个步骤:
(1)申请含一个K80 GPU的“p2.xlarge”实例
(2)安装CUDA及相应GPU版本的MXNet
申请其他类型的实例或安装其他版本的MXNet的方法同本节类似。
## 申请账号并登陆
......@@ -23,7 +26,7 @@
![选择操作系统。](../img/os.png)
EC2提供了大量的有着不同配置的实例。如图11.11所示,在第二步“2. Chosse Instance Type”中,选择有一个K80 GPU的“p2.xlarge”实例。我们也可以选择像“p2.16xlarge”这样有多个GPU的实例。如果你想比较不同实例的机器配置和收费,可参考 https://www.ec2instances.info/ 。
EC2提供了大量不同配置的实例。如图11.11所示,在第二步“2. Chosse Instance Type”中,选择有一个K80 GPU的“p2.xlarge”实例。我们也可以选择像“p2.16xlarge”这样有多个GPU的实例。如果你想比较不同实例的机器配置和收费,可参考 https://www.ec2instances.info/ 。
![选择实例。](../img/p2x.png)
......@@ -46,7 +49,7 @@ EC2提供了大量的有着不同配置的实例。如图11.11所示,在第二
如图11.16所示,当实例状态(Instance State)变绿后,右击实例并选择“Connect”,这时就可以看到访问该实例的方法了。例如在命令行输入
```
```{.python .input}
ssh -i "/path/to/key.pem" ubuntu@ec2-xx-xxx-xxx-xxx.y.compute.amazonaws.com
```
......@@ -59,7 +62,7 @@ ssh -i "/path/to/key.pem" ubuntu@ec2-xx-xxx-xxx-xxx.y.compute.amazonaws.com
如果你登录的是一个GPU实例,需要下载并安装CUDA。首先,更新并安装编译需要的包:
```
```{.python .input}
sudo apt-get update && sudo apt-get install -y build-essential git libgfortran3
```
......@@ -70,14 +73,14 @@ Nvidia一般每年会更新一次CUDA大版本。这里我们下载作者写本
获取下载地址后,我们将下载并安装CUDA9.0,例如
```
```{.python .input}
wget https://developer.download.nvidia.com/compute/cuda/9.1/secure/Prod/local_installers/cuda_9.1.85_387.26_linux.run
sudo sh cuda_9.1.85_387.26_linux.run
```
点击“Ctrl+C”跳出文档浏览,并回答以下几个问题。
```
```{.python .input}
accept/decline/quit: accept
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 387.26?
(y)es/(n)o/(q)uit: y
......@@ -97,13 +100,13 @@ Install the CUDA 9.1 Samples?
当安装完成后,运行下面的命令就可以看到该实例的GPU了。
```
```{.python .input}
nvidia-smi
```
最后,将CUDA加入到库的路径中,以方便其他库找到它。
```
```{.python .input}
echo "export LD_LIBRARY_PATH=\${LD_LIBRARY_PATH}:/usr/local/cuda-9.1/lib64" >>.bashrc
```
......@@ -111,14 +114,14 @@ echo "export LD_LIBRARY_PATH=\${LD_LIBRARY_PATH}:/usr/local/cuda-9.1/lib64" >>.b
我们已在[“安装和运行”](../chapter_prerequisite/install.md)一节中介绍了Linux用户获取本书代码并安装运行环境的方法。首先,安装Linux版的Miniconda(网址:https://conda.io/miniconda.html ),例如
```
```{.python .input}
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
```
这时需要回答下面几个问题:
```
```{.python .input n=1}
Do you accept the license terms? [yes|no]
[no] >>> yes
Do you wish the installer to prepend the Miniconda3 install location
......@@ -126,9 +129,22 @@ to PATH in your /home/ubuntu/.bashrc ? [yes|no]
[no] >>> yes
```
```{.json .output n=1}
[
{
"ename": "SyntaxError",
"evalue": "invalid syntax (<ipython-input-1-bb345644c315>, line 1)",
"output_type": "error",
"traceback": [
"\u001b[0;36m File \u001b[0;32m\"<ipython-input-1-bb345644c315>\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m Do you accept the license terms? [yes|no]\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n"
]
}
]
```
安装完成后,运行一次`source ~/.bashrc`让CUDA和conda生效。接下来,下载本书代码、安装并激活conda环境
```
```{.python .input}
mkdir gluon_tutorials_zh && cd gluon_tutorials_zh
curl https://zh.gluon.ai/gluon_tutorials_zh.tar.gz -o tutorials.tar.gz
tar -xzvf tutorials.tar.gz && rm tutorials.tar.gz
......@@ -138,7 +154,7 @@ source activate gluon
默认环境里安装了CPU版本的MXNet。现在我们将它替换成GPU版本的MXNet。因为CUDA的版本是9.1,所以安装`mxnet-cu91`。一般来说,如果CUDA版本是x.y,那么相应安装`mxnet-cuxy`
```
```{.python .input}
pip uninstall mxnet
pip install mxnet-cu91
```
......@@ -147,7 +163,7 @@ pip install mxnet-cu91
现在,我们可以运行Jupyter笔记本了:
```
```{.python .input}
jupyter notebook
```
......@@ -157,7 +173,7 @@ jupyter notebook
由于创建的实例并没有暴露8888端口,我们可以在本地命令行启动ssh从实例映射到本地8889端口。
```
```{.python .input}
# 该命令须在本地命令行运行。
ssh -i "/path/to/key.pem" ubuntu@ec2-xx-xxx-xxx-xxx.y.compute.amazonaws.com -L 8889:localhost:8888
```
......
......@@ -8,7 +8,7 @@
Nvidia有面向个人用户(例如GTX系列)和企业用户(例如Tesla系列)的两类GPU。这两类GPU的计算能力相当。然而,面向企业用户的GPU通常使用被动散热并增加了内存校验,从而更适合数据中心,并通常要比面向个人用户的GPU贵上10倍。
如果你是拥有100台机器以上的大公司用户,通常可以考虑针对企业用户的Nvidia Tesla系列。如果你是拥有10到100台机器的实验室和中小公司用户,预算充足的情况下可以考虑Nvidia DGX系列,否则可以考虑购买如Supermicro之类的性价比较高的服务器,然后再购买安装GTX系列的GPU。
如果你是拥有100台机器以上的大公司用户,通常可以考虑针对企业用户的Nvidia Tesla系列。如果你是拥有10到100台机器的实验室和中小公司用户,预算充足的情况下可以考虑Nvidia DGX系列,否则可以考虑购买如Supermicro之类的性价比较高的服务器,然后再购买安装GTX系列的GPU。
Nvidia一般每一两年发布一次新版本的GPU,例如2017年发布的是GTX 1000系列。每个系列中会有数个不同的型号,分别对应不同的性能。
......@@ -26,7 +26,7 @@ GPU的性能主要由以下三个参数构成:
我们可以从图11.19中读出两点信息:
1. 在同一个系列里面,价格和性能大体上成正比。但后发布的型号性价比更,例如980 TI和1080 TI。
1. 在同一个系列里面,价格和性能大体上成正比。但后发布的型号性价比更,例如980 TI和1080 TI。
2. GTX 1000系列比900系列在性价比上高出2倍左右。
如果大家继续比较GTX较早的系列,也可以发现类似的规律。据此,我们推荐大家在能力范围内尽可能买较新的GPU。
......@@ -37,7 +37,7 @@ GPU的性能主要由以下三个参数构成:
通常,我们主要用GPU做深度学习训练。因此,不需要购买高端的CPU。至于整机配置,尽量参考网上推荐的中高档的配置就好。不过,考虑到GPU的功耗、散热和体积,我们在整机配置上也需要考虑以下三个额外因素。
1. 机箱体积。GPU尺寸较大,通常考虑较大且自带风扇的机箱。
2. 电源。购买GPU时需要查一下GPU的功耗,例如50W到300W不等。购买电源要确保功率足够,不会过载机房的供电。
2. 电源。购买GPU时需要查一下GPU的功耗,例如50W到300W不等。购买电源要确保功率足够,不会过载机房的供电。
3. 主板的PCIe卡槽。推荐使用PCIe 3.0 16x来保证充足的GPU到主内存的带宽。如果搭载多块GPU,要仔细阅读主板说明,以确保多块GPU一起使用时仍然是16x带宽。注意,有些主板搭载4块GPU时会降到8x甚至4x带宽。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册