欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

pytorch GPU計(jì)算比CPU還慢的可能原因分析

 更新時(shí)間:2024年02月22日 08:29:53   作者:Kevin Davis  
這篇文章主要介紹了pytorch GPU計(jì)算比CPU還慢的可能原因,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

1. 張量(tensor)太小,難以并行化計(jì)算

我們先來做個(gè)簡單實(shí)驗(yàn):

import torch
import time

def train(size_list, epochs):

    for s in size_list:

        # CPU
        start_time1 = time.time()
        a = torch.ones(s,s)
        for _ in range(epochs):
            a += a
        cpu_time = time.time() - start_time1

        # GPU
        start_time2 = time.time()
        b = torch.ones(s,s).cuda()
        for _ in range(epochs):
            b += b
        gpu_time = time.time() - start_time2

        print('s = %d, CPU_time = %.4fs, GPU_time = %.4fs'%(s, cpu_time, gpu_time))

size_list = [8, 32, 128, 512]
epochs = 100000
train(size_list, 100000)

s = 8, CPU_time = 0.2252s, GPU_time = 0.6376s
s = 32, CPU_time = 0.3321s, GPU_time = 0.6468s
s = 128, CPU_time = 2.2634s, GPU_time = 0.6493s
s = 512, CPU_time = 9.6728s, GPU_time = 1.5587s

可以看到,在tensor維度比較低(s = 8, 32) 時(shí),CPU的計(jì)算耗時(shí)比GPU少,這是因?yàn)榘褦?shù)據(jù)從CPU搬到GPU也是需要時(shí)間的,GPU加速帶來的收益被這部分搬運(yùn)時(shí)間抵消了,完全展示不出cuda的加速功能。

當(dāng)tensor維度達(dá)到128或以上時(shí),GPU的計(jì)算耗時(shí)顯著低于CPU的計(jì)算耗時(shí),這時(shí)GPU加速帶來的收益遠(yuǎn)高于搬運(yùn)數(shù)據(jù)所花費(fèi)的時(shí)間,展示出GPU加速的強(qiáng)大能力(老黃牛批!)。

咳咳,分析一下:

GPU加速通過大量的計(jì)算并行化來工作。 GPU有大量的內(nèi)核,每個(gè)內(nèi)核都不是很強(qiáng)大,但是核心數(shù)量巨大。PyTorch可以使它們盡可能地并行計(jì)算,在tensor維度比較高的情況下,GPU能夠并行化更多的整體計(jì)算,顯著減少計(jì)算耗時(shí)。

因此,如果遇到pytorch 用CPU比GPU還快的情況時(shí),可以看看dataloader里單次輸入的 x 維度是否太低,如果太低可以把 batch_size 調(diào)大一點(diǎn),可以的話增加一下數(shù)據(jù)維度,單次輸入的tensor的shape越大,GPU越能并行化計(jì)算。

當(dāng)然,也不要設(shè)的太大了,比如batch_size設(shè)個(gè)大幾萬啥的,再強(qiáng)的顯卡也遭不住這么折騰。

2. 模型太過簡單

GPU的強(qiáng)大體現(xiàn)在它的并行計(jì)算,數(shù)據(jù)越大,模型越復(fù)雜越能體現(xiàn)出來。

太過簡單的模型CPU一下子就算完了,此時(shí)的GPU可能才剛接收完數(shù)據(jù),沒法體現(xiàn)GPU的強(qiáng)大。

因此,解決方案也很簡單,換個(gè)復(fù)雜點(diǎn)的模型或者加深加寬現(xiàn)有的神經(jīng)網(wǎng)絡(luò)模型。

3. CPU 相對 GPU 強(qiáng)太多

在相同的、沒調(diào)好的參數(shù)情況下,有時(shí)候64核的CPU用60%的核心(也就是38個(gè))也能達(dá)到一張2080ti顯卡(GPU)的效果。

如果CPU是個(gè)64核的芯片,而顯卡是老黃家的古董960,那CPU比GPU快也是完全有可能的,這時(shí)候瓶頸就在顯卡了。

總結(jié)

以上是我在寫bug代碼時(shí)遇到的情況及可能原因,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python中fastapi設(shè)置查詢參數(shù)可選或必選

    python中fastapi設(shè)置查詢參數(shù)可選或必選

    這篇文章主要介紹了python中fastapi設(shè)置查詢參數(shù)可選或必選,文圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值需要的小伙伴可以參考一下
    2022-06-06
  • 通過實(shí)例了解python__slots__使用方法

    通過實(shí)例了解python__slots__使用方法

    這篇文章主要介紹了通過實(shí)例了解python__slots__使用方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • python pow函數(shù)的底層實(shí)現(xiàn)原理介紹

    python pow函數(shù)的底層實(shí)現(xiàn)原理介紹

    這篇文章主要介紹了python pow函數(shù)的底層實(shí)現(xiàn)原理介紹,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Python enumerate索引迭代代碼解析

    Python enumerate索引迭代代碼解析

    這篇文章主要介紹了Python enumerate索引迭代代碼解析,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • Python實(shí)現(xiàn)四舍五入的兩個(gè)方法總結(jié)

    Python實(shí)現(xiàn)四舍五入的兩個(gè)方法總結(jié)

    這篇文章主要介紹了python中實(shí)現(xiàn)四舍五入的兩種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-09-09
  • 重溫Python基礎(chǔ)之列表操作

    重溫Python基礎(chǔ)之列表操作

    這篇文章主要帶大家來復(fù)習(xí)一下Python基礎(chǔ)中的列表操作,不知道各位還記得多少呢?文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Python有一定幫助,需要的可以參考一下
    2022-11-11
  • Python函數(shù)的嵌套詳解

    Python函數(shù)的嵌套詳解

    這篇文章主要為大家介紹了Python函數(shù)的嵌套,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • python向已存在的excel中新增表,不覆蓋原數(shù)據(jù)的實(shí)例

    python向已存在的excel中新增表,不覆蓋原數(shù)據(jù)的實(shí)例

    下面小編就為大家分享一篇python向已存在的excel中新增表,不覆蓋原數(shù)據(jù)的實(shí)例,具有很好超參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Python通用驗(yàn)證碼識別OCR庫ddddocr的安裝使用教程

    Python通用驗(yàn)證碼識別OCR庫ddddocr的安裝使用教程

    dddd_ocr是一個(gè)用于識別驗(yàn)證碼的開源庫,又名帶帶弟弟ocr,下面這篇文章主要給大家介紹了關(guān)于Python通用驗(yàn)證碼識別OCR庫ddddocr的安裝使用教程,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • 如何處理json中不帶雙引號的key的問題

    如何處理json中不帶雙引號的key的問題

    這篇文章主要介紹了如何處理json中不帶雙引號的key的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09

最新評論