iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 30
0
Software Development

30 天的 SFC 學習日誌系列 第 30

Day 30 - GPU & CPU差別

大家好,我是毛毛。
今天是Day 30
今天來看看CartPole、MountainCar和Acrobot前面實作過的三個環境
在使用CPU和GPU的情況下,訓練時間要花多久~ ヽ(✿゚▽゚)ノ
礙於時間的關係,訓練次數都設為100次


計時

計時的方式如下,在Main的開頭與結尾前,分別用time.time()取得當前時間的秒數
兩者相減便是所花的時間了

time.time()

可以傳回從1970/1/1 00:00:00 算起至今的秒數

import time

def main():
    start = time.time()
    ...
    end = time.time()
    print("Period: {} sec".format(round((end-start), 2)))

CartPole

GPU

https://ithelp.ithome.com.tw/upload/images/20201006/20129934t4zqhxEytG.png

CPU

https://ithelp.ithome.com.tw/upload/images/20201006/20129934dnQHOYZ9cI.png


MountainCar

GPU

https://ithelp.ithome.com.tw/upload/images/20201006/2012993488HtvpNmtx.png

CPU

https://ithelp.ithome.com.tw/upload/images/20201006/20129934IEpIT4bYqR.png


Acrobot

GPU

https://ithelp.ithome.com.tw/upload/images/20201006/20129934LORETCzEPo.png

CPU

https://ithelp.ithome.com.tw/upload/images/20201006/20129934pBNnIP0G7W.png


結論

測試完發現,在這三個環境,CPU所花的時間都比GPU還少/images/emoticon/emoticon19.gif
得到的reward和成功次數我就沒特別比較了,因為本來只用CPU跑,這些數據就都不太固定了。
結論是,應該是因為這三個環境中,沒有用到大量的圖形處理,所以GPU所花的時間並沒有優於CPU。
另外一個可能就是這台的CPU也很強/images/emoticon/emoticon37.gif

CPU與GPU具備非常不同的概念基礎,CPU是專為通用應用程式所設計,可對單一任務提供快速的回應,但GPU則是針對需要大量平行運算的繪圖應用程式所設計。


完賽心得

終於熬過這30天了
/images/emoticon/emoticon02.gif
在開賽前都覺得每天就生一點進度出來就好了,但開賽後,每天都感覺在被進度追殺 0(:3 )~ ('、3_ヽ)_
而且一開始覺得團隊挑戰好像有點沒意義,每個人還是自己PO自己的東西啊/images/emoticon/emoticon06.gif
但是開賽後發現
有人一起挑戰會更能撐下去,也能督促自己要擠出進度/images/emoticon/emoticon25.gif
雖然過程難熬,但很充實/images/emoticon/emoticon37.gif

最後~我們完成30天的挑戰啦~
/images/emoticon/emoticon34.gif


上一篇
Day 29 - GPU安裝 & GPU/CPU切換
系列文
30 天的 SFC 學習日誌30

尚未有邦友留言

立即登入留言