介紹
Amazon EC2 P2實(shí)例
p2.xlarge是一種非常適合深度學(xué)習(xí)的云服務(wù)器,它配備了12G顯存的Tesla K80顯卡,4核CPU,60G內(nèi)存,以及500M的網(wǎng)速。如果你還嫌不夠,可以選擇它的8倍和16倍的版本。
2018年更新:p3.2xlarge是一種非常適合深度學(xué)習(xí)的云服務(wù)器,它配備了16G顯存的Tesla V100顯卡,8核CPU,60G內(nèi)存,以及最高10Gbps的網(wǎng)速。如果你還嫌不夠,可以選擇它的4倍和8倍的版本
注冊(cè)賬號(hào)
首先我們需要注冊(cè)一個(gè)aws賬號(hào),從剛才的地址可以注冊(cè),需要VISA或MasterCard信用卡。
注冊(cè)好了以后,我們需要申請(qǐng)p3.2xlarge的權(quán)限,因?yàn)閍ws默認(rèn)最高允許只開0臺(tái)機(jī)器。
填寫工單
請(qǐng)求提高限制
這里如果你想用p2,那么請(qǐng)申請(qǐng)p2。如果你想用p3,那么請(qǐng)選擇p3。如果你想用競價(jià)實(shí)例,請(qǐng)?jiān)谙旅娴腢se Case Description里面注明spot instance。
如果沒有寫工單申請(qǐng)?zhí)岣呱舷?,直接開機(jī)器,就會(huì)出現(xiàn)Instance Count Limit Exceeded。
開啟實(shí)例
選擇AMI
EC2控制面板
首先點(diǎn)擊啟動(dòng)實(shí)例,然后這里記得選擇Deep Learning AMI,因?yàn)轭A(yù)裝了NVIDIA驅(qū)動(dòng),Python,TensorFlow,Keras等環(huán)境,比較省折騰。當(dāng)然,如果你想自己配環(huán)境,不需要這么多環(huán)境,也可以選擇Deep Learning Base AMI,我經(jīng)常選這個(gè)AMI作為基礎(chǔ),搭建我的環(huán)境。
選擇一個(gè)實(shí)例類型
這里選p3.xlarge就好,開啟以后一分鐘和59分鐘都算一個(gè)小時(shí),所以開了以后可以放心大膽折騰一個(gè)小時(shí),壞了也不用怕,刪掉再開一個(gè)就好。注意:如果你選擇的是8x或者16x,你需要自己實(shí)現(xiàn)多GPU的代碼,不然Keras只會(huì)使用一個(gè)GPU來訓(xùn)練。
2018年更新:現(xiàn)在已經(jīng)精確到小數(shù)點(diǎn)后兩三位了,大概是按分鐘甚至是按秒計(jì)價(jià)。
后面三步直接下一步就好。
配置安全組
入站和出站記得配置成任所有流量和任意位置,不然到時(shí)候ssh不上去,或者開jupyter notebook連不上去。懂的人可以自行配置,不懂就直接寫所有流量就好了,反正有key才能連上去。
配置密鑰對(duì)
如果你有自己常用的私鑰和公鑰,可以從密鑰對(duì)這里導(dǎo)入,否則你可以生成一個(gè)新的密鑰,然后下載密鑰對(duì)。
連接
在連接以前,它需要進(jìn)行一段時(shí)間初始化(大概五分鐘),所以你可以先等待一會(huì)。等它顯示已通過的時(shí)候,你就可以用ssh連接它了。下面是我連接的命令:
ssh-i Downloads/test.pem ubuntu 52.91.231.174
其中的key你需要改為你自己的路徑,IP地址也要改為你自己買的服務(wù)器的IP地址。如果它提示你是否要確定連接,你要確定:
Are you sure you want to continue connecting(yes/no)?yes
如果提示下面的信息:
你需要將你的key的權(quán)限改為只有你可以訪問,然后再進(jìn)行連接:
chmod 700 Downloads/test.pem
開始寫代碼
你可以通過下面的命令開啟一個(gè)支持遠(yuǎn)程連接的jupyter notebook:
jupyter notebook--ip=0.0.0.0
注意這里的命令需要寫--ip=0.0.0.0,它代表監(jiān)聽任意IP。
然后你需要用瀏覽器,輸入你的服務(wù)器IP:8888(一定要輸入你自己買的服務(wù)器的IP地址而不是0.0.0.0,比如:https://52.91.231.174:8888)就可以連上服務(wù)器,點(diǎn)擊右上角新建notebook并編寫python代碼了。
如果你想斷開ssh連接以后還可以在后臺(tái)運(yùn)行notebook,你可以使用screen這個(gè)命令:
screen-S jupyter
jupyter notebook--ip=0.0.0.0
進(jìn)入screen以后,任何命令都不受ssh斷開的影響。-S后面的jupyter只是個(gè)名字,你可以使用你喜歡的任何名字。
斷開以后恢復(fù)的方法:
screen-r jupyter
停止
當(dāng)你不使用實(shí)例的時(shí)候,記得停止它。停止以后,不會(huì)計(jì)費(fèi)。
事實(shí)上由于我是新用戶,所以會(huì)有一年免費(fèi)EBS試用,一年以后的收費(fèi)可以參照這里:https://aws.amazon.com/cn/ebs/pricing/,一個(gè)月30G的SSD收費(fèi)是3美元,因此你可以自行權(quán)衡數(shù)據(jù)和價(jià)格,若是一個(gè)月以后還要用這些數(shù)據(jù),而你愿意出3美元保持這些數(shù)據(jù),避免一個(gè)月以后麻煩,那么你可以不必終止該實(shí)例。當(dāng)你長期不打算使用該實(shí)例時(shí),請(qǐng)務(wù)必終止該實(shí)例。
競價(jià)實(shí)例
競價(jià)實(shí)例是一種特殊的實(shí)例,它可以以超低的價(jià)格提供配置一樣的實(shí)例,和普通實(shí)例的差別在于不可停止,因此當(dāng)你想跑比較大的網(wǎng)絡(luò)的時(shí)候(訓(xùn)練時(shí)間大于1小時(shí)),用競價(jià)實(shí)例會(huì)非常劃算。0.9美元每小時(shí)的p2.xlarge在競價(jià)實(shí)例一個(gè)月的歷史記錄里很少超過0.3美元。即使超過了,我們也不會(huì)出高于0.9美元的價(jià)格。
上圖是這兩天的賬單,我用了40小時(shí),才花了5.33美元,平均一小時(shí)0.13美元,但是這并不代表之后還是保持這個(gè)價(jià)格。
創(chuàng)建自己的映像(AMI)
當(dāng)你想創(chuàng)建競價(jià)實(shí)例的時(shí)候,你可能并不想重新配置一遍環(huán)境,這時(shí)候你可以創(chuàng)建自己的映像,然后在創(chuàng)建競價(jià)實(shí)例的時(shí)候使用該映像,這樣創(chuàng)建的競價(jià)實(shí)例可以完好無損地遷移之前的驅(qū)動(dòng),環(huán)境,以及數(shù)據(jù)和代碼。
創(chuàng)建映像
選擇映像(AMI)
實(shí)際體驗(yàn)
訓(xùn)練時(shí)nvidia-smi的輸出。
如果要監(jiān)控可以使用下面的命令,一秒刷新一次:
watch-n 1 nvidia-smi
將二十多萬張圖片載入內(nèi)存時(shí)htop的輸出。
speedtest的結(jié)果。