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