成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

比較CPU和GPU中的矩陣計算

開發(fā) 前端
GPU 計算與 CPU 相比能夠快多少?在本文中,我將使用 Python 和 PyTorch 線性變換函數對其進行測試。

GPU 計算與 CPU 相比能夠快多少?在本文中,我將使用 Python 和 PyTorch 線性變換函數對其進行測試。

圖片

以下是測試機配置:

CPU:英特爾 i7 6700k (4c/8t) GPU:RTX 3070 TI(6,144 個 CUDA 核心和 192 個 Tensor 核心) 內存:32G 操作系統(tǒng):Windows 10

無論是cpu和顯卡都是目前常見的配置,并不是頂配(等4090能夠正常發(fā)貨后我們會給出目前頂配的測試結果)?

NVIDIA GPU 術語解釋

CUDA 是Compute Unified Device Architecture的縮寫。可以使用 CUDA 直接訪問 NVIDIA GPU 指令集,與專門為構建游戲引擎而設計的 DirectX 和 OpenGL 不同,CUDA 不需要用戶理解復雜的圖形編程語言。但是需要說明的是CUDA為N卡獨有,所以這就是為什么A卡對于深度學習不友好的原因之一。

Tensor Cores是加速矩陣乘法過程的處理單元。

例如,使用 CPU 或 CUDA 將兩個 4×4 矩陣相乘涉及 64 次乘法和 48 次加法,每個時鐘周期一次操作,而Tensor Cores每個時鐘周期可以執(zhí)行多個操作。

上面的圖來自 Nvidia 官方對 Tensor Cores 進行的介紹視頻

CUDA 核心和 Tensor 核心之間有什么關系?Tensor Cores 內置在 CUDA 核心中,當滿足某些條件時,就會觸發(fā)這些核心的操作。

測試方法

GPU的計算速度僅在某些典型場景下比CPU快。在其他的一般情況下,GPU的計算速度可能比CPU慢!但是CUDA在機器學習和深度學習中被廣泛使用,因為它在并行矩陣乘法和加法方面特別出色。

上面的操作就是我們常見的線性操作,公式是這個

這就是PyTorch的線性函數torch.nn.Linear的操作。可以通過以下代碼將2x2矩陣轉換為2x3矩陣:

import torch
in_row,in_f,out_f = 2,2,3
tensor = torch.randn(in_row,in_f)
l_trans = torch.nn.Linear(in_f,out_f)
print(l_trans(tensor))

CPU 基線測試

在測量 GPU 性能之前,我需要線測試 CPU 的基準性能。

為了給讓芯片滿載和延長運行時間,我增加了in_row、in_f、out_f個數,也設置了循環(huán)操作10000次。

import torch
import torch.nn
import timein_row, in_f, out_f = 256, 1024, 2048
loop_times = 10000

現在,讓我們看看CPU完成10000個轉換需要多少秒:

s       = time.time()
tensor = torch.randn(in_row, in_f).to('cpu')
l_trans = torch.nn.Linear(in_f, out_f).to('cpu')
for _ in range(loop_times):

print('cpu take time:',time.time()-s)

#cpu take time: 55.70971965789795

可以看到cpu花費55秒。

GPU計算

為了讓GPU的CUDA執(zhí)行相同的計算,我只需將. To (' cpu ')替換為. cuda()。另外,考慮到CUDA中的操作是異步的,我們還需要添加一個同步語句,以確保在所有CUDA任務完成后打印使用的時間。

s       = time.time()
tensor = torch.randn(in_row, in_f).cuda()
l_trans = torch.nn.Linear(in_f, out_f).cuda()
for _ in range(loop_times):


torch.cuda.synchronize()
print('CUDA take time:',time.time()-s)

#CUDA take time: 1.327127456665039

并行運算只用了1.3秒,幾乎是CPU運行速度的42倍。這就是為什么一個在CPU上需要幾天訓練的模型現在在GPU上只需要幾個小時。因為并行的簡單計算式GPU的強項

如何使用Tensor Cores

CUDA已經很快了,那么如何啟用RTX 3070Ti的197Tensor Cores?,啟用后是否會更快呢?在PyTorch中我們需要做的是減少浮點精度從FP32到FP16。,也就是我們說的半精度或者叫混合精度

s       = time.time()
tensor = torch.randn(in_row, in_f).cuda().half()
layer = torch.nn.Linear(in_f, out_f).cuda().half()
for _ in range(loop_times):

torch.cuda.synchronize()
print('CUDA with tensor cores take time:',time.time()-s)

#CUDA with tensor cores take time:0.5381264686584473

又是2.6倍的提升。

總結

在本文中,通過在CPU、GPU CUDA和GPU CUDA +Tensor Cores中調用PyTorch線性轉換函數來比較線性轉換操作。下面是一個總結的結果:

圖片

NVIDIA的CUDA和Tensor Cores確實大大提高了矩陣乘法的性能。

后面我們會有兩個方向的更新

1、介紹一些簡單的CUDA操作(通過Numba),這樣可以讓我們了解一些細節(jié)

2、我們會在拿到4090后發(fā)布一個專門針對深度學習的評測,這樣可以方便大家購買可選擇

責任編輯:華軒 來源: DeepHub IMBA
相關推薦

2021-04-13 13:21:58

CPUGPU異構

2019-08-21 09:24:45

GPUCPU深度學習

2019-01-03 14:21:51

CPUGPU系統(tǒng)

2010-06-22 13:11:18

超級計算機未來

2019-07-22 15:37:56

CPU核心GPU

2020-06-28 09:40:58

操作系統(tǒng)GPUCPU

2011-06-21 14:23:15

GPUCPU高性能計算

2019-06-03 20:00:09

LinuxCPU溫度GPU溫度

2023-12-11 07:52:19

圖像處理矩陣計算計算機視覺

2012-09-24 09:35:31

APUCPUGPU

2024-09-27 08:10:57

2024-10-23 09:05:07

PixijsMatrixTransform

2018-12-24 10:53:48

2021-06-09 13:10:01

CPUGPUVCU

2018-11-13 13:10:10

CPUGPUTPU

2021-07-06 06:26:43

動態(tài)計算圖GPU深度學習

2009-03-21 15:15:33

Nehalem服務器HPC

2023-02-08 17:04:14

Python計算庫數學函數

2019-05-10 08:43:05

CPUGPUNPU

2019-09-11 15:38:15

CPUGPUNPU
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 不卡一二三区 | 精品中文字幕一区二区三区 | 欧美一区免费 | 成人妇女免费播放久久久 | 中文字幕在线精品 | 国产精品一区久久久 | 国产成人免费视频网站视频社区 | 国产高清一区二区三区 | 狠狠操操| 欧洲一级视频 | 欧美一级黄 | 欧美精品久久久久久久久久 | 免费高清成人 | 久草新在线 | 久久精品欧美一区二区三区不卡 | 国产一区二区精品在线 | 国产精品不卡视频 | 欧美午夜影院 | 99久久精品免费看国产四区 | 日本视频一区二区 | 欧美三级视频在线观看 | 2018中文字幕第一页 | 91久久国产综合久久 | 污片在线免费观看 | 在线综合视频 | 精品av| 午夜小视频在线观看 | 婷婷色国产偷v国产偷v小说 | 久久久一区二区三区 | 欧美日韩视频一区二区 | 毛片视频网站 | 久久99蜜桃综合影院免费观看 | 久久久久久久久精 | 国产精品久久久久久久模特 | 免费人成激情视频在线观看冫 | 97精品超碰一区二区三区 | 免费黄色的网站 | 久久精品亚洲国产奇米99 | 久久久精品综合 | 9久久婷婷国产综合精品性色 | 视频一区二区在线 |