簡體   English   中英

與具有theano的CPU相比,具有Theano的GPU給出的結果較差

[英]GPU with Theano giving poor result compared to CPU with theano

我正在做本教程: http : //deeplearning.net/software/theano/tutorial/using_gpu.html#exercise

並在此處給出了該教程的解決方案: http : //deeplearning.net/software/theano/_downloads/using_gpu_solution_1.py

但是我的問題是我何時運行代碼

使用GPU:

THEANO_FLAGS=mode=FAST_RUN,device=gpu time python using_gpu_solution_1.py

我得到以下輸出:

Using gpu device 0: Tesla C2050 / C2070
Used the gpu
13.37user 3.69system 0:16.49elapsed 103%CPU (0avgtext+0avgdata 617376maxresident)k
0inputs+16outputs (0major+75442minor)pagefaults 0swaps

和CPU:

THEANO_FLAGS=mode=FAST_RUN,device=cpu time python using_gpu_solution_1.py

我得到以下輸出:

Used the cpu
6.85user 14.50system 0:04.43elapsed 481%CPU (0avgtext+0avgdata 241120maxresident)k
0inputs+16outputs (0major+43904minor)pagefaults 0swaps

解決方案中,他們提到GPU的速度幾乎提高了一倍。 但是與GPU相比,我使用GPU的時間越來越長。

代碼是否在CPU的多個內核上運行,並且相對於GPU有了改進?

誰能告訴我我錯了嗎? 我唯一能看到的就是使用GPU改善了系統時間。 這就是加速嗎? 因為使用GPU的總耗時仍然更多。

存在一個問題(1)和對此的考慮(2-3):

1)您的時間不正確。 您的計時方式包括theano編譯時間。 Theano編譯不包含在配置文件中。 您只應該計時在Theano函數中花費的時間。 為此,請像在配置文件中一樣修改Theano分析器的使用腳本。

2)這是一個玩具示例。 它執行純隨機梯度下降(SGD)。 為了從GPU獲得更快的速度,我們需要將minibatch與SGD一起使用。 如果我們不這樣做,GPU將沒有足夠的數據來並行化計算。

3)由於這只是一個小模型的玩具示例,因此速度的提高將取決於所使用的CPU和GPU。 可能是您在比原來更好的CPU上進行了計時,或者是通過並行BLAS進行了計時。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM