溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

關(guān)于pytorch多GPU訓練實例與性能對比分析

發(fā)布時間:2020-09-10 12:01:07 來源:腳本之家 閱讀:224 作者:奏英宇 欄目:開發(fā)技術(shù)

以下實驗是我在百度公司實習的時候做的,記錄下來留個小經(jīng)驗。

多GPU訓練

cifar10_97.23 使用 run.sh 文件開始訓練

cifar10_97.50 使用 run.4GPU.sh 開始訓練

在集群中改變GPU調(diào)用個數(shù)修改 run.sh 文件

nohup srun --job-name=cf23 $pt --gres=gpu:2 -n1 bash cluster_run.sh $cmd 2>&1 1>>log.cf50_2GPU &

修改 –gres=gpu:2 即可

Python 文件代碼修改

parser.add_argument('--batch_size', type=int, default=96*2, help='batch size')

修改對應(yīng) batch size 大小,保證每塊GPU獲得等量的訓練數(shù)據(jù),因為batch_size的改變會影響訓練精度

最容易實現(xiàn)的單GPU訓練改為多GPU訓練代碼

單GPU:logits, logits_aux = model(input)

多GPU:

if torch.cuda.device_count()>1:#判斷是否能夠有大于一的GPU資源可以調(diào)用

   logits, logits_aux =nn.parallel.data_parallel(model,input)

  else:

   logits, logits_aux = model(input)

缺點:不是性能最好的實現(xiàn)方式

優(yōu)點:代碼嵌入適應(yīng)性強,不容易報錯

性能分析

該圖為1到8GPU訓練cifar10——97.23網(wǎng)絡(luò)的實驗對比

關(guān)于pytorch多GPU訓練實例與性能對比分析

可以看到單核訓練600輪需要53小時、雙核訓練600輪需要26小時、四核16、六核14、八核13。

在可運行7小時的GPU上的對比實驗:單核跑完83輪、雙核跑完163輪、四核跑完266輪

結(jié)論:性價比較高的是使用4~6核GPU進行訓練,但是多GPU訓練對于單GPU訓練有所差異,訓練的準確率提升會有所波動,目前發(fā)現(xiàn)的是負面的影響。

以上這篇關(guān)于pytorch多GPU訓練實例與性能對比分析就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI