這是一個(gè)幫助文檔,我們會(huì)一步一步講解如何從0開(kāi)始在AWS上申請(qǐng)CPU或者GPU機(jī)器進(jìn)行使用。
申請(qǐng)賬號(hào)并登陸
首先我們需要在aws官網(wǎng)上面注冊(cè)賬號(hào),這里需要綁定一張信用卡,所以沒(méi)有master或者VISA卡的同學(xué)可以開(kāi)通一張,實(shí)在不熟悉的同學(xué)可以搜索一下"如何注冊(cè)aws賬號(hào)"。
然后我們進(jìn)入到控制面板,可以看到下面的圖片,點(diǎn)擊"EC2"

然后我們就能夠進(jìn)入到下一個(gè)界面

這個(gè)界面只需要注意三個(gè)地方,一個(gè)是右上角的地區(qū),需要選擇一個(gè)離你比較近的地區(qū),整個(gè)亞太地區(qū)可以選擇韓國(guó),日本,新加坡和孟買。然后是左邊的一個(gè)方框"限制",如果你申請(qǐng)CPU的計(jì)算實(shí)例,那么不用管,如果你要申請(qǐng)GPU計(jì)算實(shí)例,就需要點(diǎn)擊"限制"進(jìn)行申請(qǐng),因?yàn)镚PU實(shí)例會(huì)產(chǎn)生費(fèi)用,亞馬遜需要和你確認(rèn)這個(gè)事情,一般需要兩到三個(gè)工作日。
接下面就可以開(kāi)始啟動(dòng)實(shí)例了,點(diǎn)擊中間的紅框即可開(kāi)始。
申請(qǐng)實(shí)例并啟動(dòng)

進(jìn)入上面的界面之后,需要選擇操作系統(tǒng),這里我們一般都選擇linux系統(tǒng),當(dāng)然還有很多社區(qū)AMI,也就是別人配置好的系統(tǒng),這里先暫時(shí)不用管,我們一般就在上面兩個(gè)紅框中選擇一個(gè),第一個(gè)是一個(gè)空的系統(tǒng),什么都沒(méi)有,第二個(gè)是一個(gè)深度學(xué)習(xí)的系統(tǒng),裝好了CUDA以及很多框架,可以選擇這一個(gè),如果選擇這個(gè),那么需要的磁盤(pán)空間可能更大。
點(diǎn)擊選擇之后便可以進(jìn)入下面的界面。

這里需要選擇實(shí)例類型,如果新注冊(cè)的用戶可以免費(fèi)使用一年的t2.mirco實(shí)例,這個(gè)實(shí)例是沒(méi)有GPU的,如果要使用GPU的實(shí)例,那么從上面的實(shí)例類型中選擇GPU計(jì)算,便可以快速跳轉(zhuǎn)到下面這里。

這里有很多個(gè)實(shí)例,一般我們就選第一個(gè)p2.xlarge,這個(gè)實(shí)例包含一個(gè)Nvidia k40GPU,后面有8塊GPU和16塊GPU的版本,當(dāng)然費(fèi)用也更高。選擇完成之后我們可以進(jìn)入下一步配置實(shí)例信息。

這里我們只需要關(guān)注根目錄的大小,也就是云端計(jì)算平臺(tái)的硬盤(pán)大小,因?yàn)槲覀冃枰娣艛?shù)據(jù)集,需要安裝框架,所以需要大一點(diǎn),新注冊(cè)的用戶可以免費(fèi)試用30G的存儲(chǔ),我們可以設(shè)置為40G,一般費(fèi)用比較便宜。然后點(diǎn)擊審核和啟動(dòng)實(shí)例。
接著進(jìn)入到下面這個(gè)界面,我們可以點(diǎn)擊右下角的啟動(dòng)來(lái)啟動(dòng)實(shí)例了。

接著會(huì)跳出一個(gè)對(duì)話框如下。

這里需要你創(chuàng)建一個(gè)密鑰對(duì),因?yàn)楝F(xiàn)在aws不支持密碼登錄,所以需要密鑰登錄,你在名稱那一欄取一個(gè)名字,然后點(diǎn)擊下載密鑰對(duì)就可以了。
然后你就可以看到你的實(shí)例正在啟動(dòng),點(diǎn)擊下圖紅框的地方進(jìn)入具體的實(shí)例位置。

然后可以進(jìn)入到下面的界面,可以看到實(shí)例正在啟動(dòng),右鍵點(diǎn)擊實(shí)例這一欄,然后點(diǎn)擊連接。

接著便會(huì)出來(lái)下面的窗口,按著這個(gè)窗口的操作,如果使用windows系統(tǒng),需要PuTTY連接,因?yàn)槲业碾娔X是mac,所以這個(gè)部分沒(méi)有嘗試。在mac下打開(kāi)終端,先進(jìn)入剛才存放密鑰的位置,然后輸出chmod 400 yourkey.pem,這里我的密鑰是'liao.pem',這個(gè)命令只需要第一次連接的時(shí)候輸入,后面連接就不用管了,然后通過(guò)下面的命令連到你的遠(yuǎn)程linux服務(wù)器。

比如,這是我在終端中進(jìn)行的輸入,第一次連接會(huì)彈出一個(gè)問(wèn)題,輸入yes即可。

然后我們便進(jìn)入到了系統(tǒng),可以看到,紅框就表示連接的遠(yuǎn)程服務(wù)器。

安裝Anaconda
下面簡(jiǎn)單演示一下如何在遠(yuǎn)程環(huán)境下安裝anaconda,這里需要一點(diǎn)bash命令的基礎(chǔ)。首先使用自己的電腦進(jìn)入到Anaconda的官網(wǎng),然后右鍵點(diǎn)擊Download,保存鏈接地址。

然后在剛剛連接的遠(yuǎn)程服務(wù)器上面輸入
wget https://repo.continuum.io/archive/Anaconda3-5.0.1-Linux-x86_64.sh
后面是剛剛復(fù)制的地址,然后輸入回車,就開(kāi)始下載了,下載完成之后是一個(gè)后綴為.sh的文件,輸入sudo sh 文件名.sh就可以開(kāi)始安裝了。

安裝完成之后,通過(guò)下面的命令配置環(huán)境變量。
echo 'export PATH="~/anaconda3/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
這樣便完成了遠(yuǎn)程Anaconda的安裝。
安裝CUDA
【注意】只有CPU的實(shí)例可以跳過(guò)步驟。
我們?nèi)vidia官網(wǎng)下載CUDA并安裝。選擇正確的版本并獲取下載地址。
【注意】目前CUDA默認(rèn)下載9.0版,但mxnet-cu90的daily build還不完善。建議使用下面命令安裝8.0版。
[圖片上傳失敗...(image-afb059-1510476790914)]
然后使用wget下載并且安裝
wget https://developer.nvidia.com/compute/cuda/8.0/Prod2/local_installers/cuda_8.0.61_375.26_linux-run
sudo sh cuda_8.0.61_375.26_linux-run
這里需要回答幾個(gè)問(wèn)題。
accept/decline/quit: accept
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 375.26?
(y)es/(n)o/(q)uit: y
Do you want to install the OpenGL libraries?
(y)es/(n)o/(q)uit [ default is yes ]: y
Do you want to run nvidia-xconfig?
(y)es/(n)o/(q)uit [ default is no ]: n
Install the CUDA 8.0 Toolkit?
(y)es/(n)o/(q)uit: y
Enter Toolkit Location
[ default is /usr/local/cuda-8.0 ]:
Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y
Install the CUDA 8.0 Samples?
(y)es/(n)o/(q)uit: n
安裝完成后運(yùn)行
nvidia-smi
就可以看到這個(gè)實(shí)例的GPU了。最后將CUDA加入到library path方便之后安裝的庫(kù)找到它。
echo "export LD_LIBRARY_PATH=\${LD_LIBRARY_PATH}:/usr/local/cuda-8.0/lib64" >>.bashrc
運(yùn)行Jupyter notebook
接下來(lái)在遠(yuǎn)程終端運(yùn)行Jupyter notebook。
jupyter notebook
如果成功的話會(huì)看到類似的輸出
[圖片上傳失敗...(image-8b4d44-1510476790914)]
因?yàn)槲覀兊膶?shí)例沒(méi)有暴露8888端口,所以我們可以通過(guò)ssh映射到本地
ssh -L8888:locallhost:8888 ubuntu@your-ip.amazonaws.com
然后把jupyter log里的URL復(fù)制到本地瀏覽器就行了。
【注意】如果本地運(yùn)行了Jupyter notebook,那么8888端口就可能被占用了。要么關(guān)掉本地jupyter,要么把端口映射改成別的。例如,假設(shè)aws使用默認(rèn)8888端口,我們可以通過(guò)ssh映射到本地8889端口:
ssh -N -f -L localhost:8889:localhost:8888 ubuntu@your-ip.amazonaws.com
然后在本地瀏覽器打開(kāi)localhost:8889,這時(shí)會(huì)提示需要token值。接下來(lái),我們將aws上jupyter log里的token值(例如上圖里:...localhost:8888/?token=token值)復(fù)制粘貼即可。
后續(xù)
因?yàn)樵品?wù)按時(shí)間計(jì)費(fèi),通常我們不用時(shí)需要把樣例關(guān)掉,到下次要用時(shí)再開(kāi)。

如果是停掉(Stop),下次可以直接繼續(xù)用,但硬盤(pán)空間會(huì)計(jì)費(fèi)。如果是終結(jié)(Termination),我們一般會(huì)先把操作系統(tǒng)做鏡像,下次開(kāi)始時(shí)直接使用鏡像(AMI)(上面的教程使用了Ubuntu 16.06 AMI)就行了,不需要再把上面流程走一次。

云雖然很方便,但是不便宜,所以在使用完GPU實(shí)例之后一定要記得關(guān)掉。