這是一個(gè)幫助文檔捅彻,我們會(huì)一步一步講解如何從0開始在AWS上申請(qǐng)CPU或者GPU機(jī)器進(jìn)行使用组去。
申請(qǐng)賬號(hào)并登陸
首先我們需要在aws官網(wǎng)上面注冊(cè)賬號(hào),這里需要綁定一張信用卡步淹,所以沒(méi)有master或者VISA卡的同學(xué)可以開通一張从隆,實(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è)工作日辉懒。
接下面就可以開始啟動(dòng)實(shí)例了阳惹,點(diǎn)擊中間的紅框即可開始。
申請(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è)询件,那么需要的磁盤空間可能更大燃乍。
點(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)的硬盤大小某残,因?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下打開終端炊汹,先進(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ù)制的地址,然后輸入回車夺艰,就開始下載了芋哭,下載完成之后是一個(gè)后綴為.sh的文件,輸入sudo sh 文件名.sh
就可以開始安裝了郁副。
安裝完成之后减牺,通過(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
然后在本地瀏覽器打開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í)再開履因。
如果是停掉(Stop),下次可以直接繼續(xù)用盹愚,但硬盤空間會(huì)計(jì)費(fèi)栅迄。如果是終結(jié)(Termination),我們一般會(huì)先把操作系統(tǒng)做鏡像杯拐,下次開始時(shí)直接使用鏡像(AMI)(上面的教程使用了Ubuntu 16.06 AMI)就行了霞篡,不需要再把上面流程走一次。
云雖然很方便端逼,但是不便宜朗兵,所以在使用完GPU實(shí)例之后一定要記得關(guān)掉。