中央處理單元 (CPU) 是延遲優(yōu)化的通用處理器,旨在按順序處理各種不同的任務,而圖形處理單元 (GPU) 是吞吐量優(yōu)化的專用處理器,專為高端并行計算而設計。下面,小編就大家比較下GPU與CPU。
一、什么是CPU?
中央處理器 (CPU) 是計算機的大腦。CPU的主要工作是通過 fetch-decode-execute循環(huán)執(zhí)行各種指令,以管理計算機的各個部分并運行各種計算機程序。
CPU架構
CPU在按順序處理數據方面非??欤驗樗鼛缀鯖]有具有高時鐘速度的重量級內核。它就像一把瑞士軍刀,可以很好地處理各種任務。CPU 是延遲優(yōu)化的,可以在多個任務之間快速切換,這可能會產生并行性的印象。然而,從根本上說,它旨在一次運行一項任務。
二、什么是 GPU?
圖形處理單元 (GPU) 是一種專門的處理器,其工作是快速操作內存并加速計算機以完成許多需要高度并行性的特定任務。
GPU架構
由于GPU使用了數千個輕量級內核,其指令集針對維度矩陣算術和浮點計算進行了優(yōu)化,因此它在處理線性代數和需要高度并行性的類似任務時速度非常快。根據經驗,如果算法接受矢量化數據,那么這項工作可能非常適合GPU計算。
從架構上講,GPU 的內部存儲器具有點對點連接的寬接口,可加速存儲器吞吐量并增加 GPU在給定時刻可以處理的數據量。它旨在一次快速處理大量數據。
三、GPU與CPU之間的比較
CPU和GPU的限制歸結為確切的用例場景。在某些情況下,使用CPU就足夠了,而其他應用程序可能使用GPU加速器比較好?,F在讓我們了解下CPU和GPU 處理器的一些普遍弱點,以幫助我們決定是否需要它們。
1、CPU局限性
(1)重量級指令集
將日益復雜的指令直接嵌入 CPU 硬件的趨勢是一種現代趨勢,但也有其不利之處。為了執(zhí)行一些更困難的指令,CPU有時需要旋轉數百個時鐘周期。盡管英特爾使用具有指令級并行性的指令流水線來緩解此限制,但它正在成為整體CPU性能的開銷。
(2)上下文切換延遲
上下文切換延遲是CPU內核在線程之間切換所需的時間。任務之間的切換非常緩慢,因為我們的CPU必須存儲寄存器和狀態(tài)變量、刷新高速緩存和執(zhí)行其他類型的清理活動。盡管現代CPU處理器試圖通過降低多任務延遲的任務狀態(tài)段來解決這個問題,但上下文切換仍然是一個昂貴的過程。
(3)摩爾定律
集成電路上每平方英寸的晶體管數量每兩年翻一番的想法可能即將結束。你可以在一塊硅上安裝多少晶體管是有限度的,而且你無法超越物理學。相反,工程師們一直在嘗試借助分布式計算來提高計算效率,并嘗試使用量子計算機,甚至試圖尋找用于CPU制造的硅替代品。
2、GPU局限性
(1)功能較弱的核心
盡管GPU具有更多內核,但在時鐘速度方面,它們的功能不如CPU同類產品。GPU內核的指令集種類較少,但指令集更為專業(yè)。這不一定是壞事,因為GPU對于一小部分特定任務非常有效。
(2)更少的內存
GPU還受到它們可以擁有的最大內存量的限制。盡管GPU處理器可以在給定時刻比CPU移動更多的信息,但GPU內存訪問的延遲要高得多。
(3)有限的 API
最流行的GPU API是OpenCL和CUDA。不幸的是,它們都以難以調試而聞名。盡管OpenCL是開源的,但在Nvidia硬件上運行速度相當慢。另一方面,CUDA是專有的Nvidia API,并針對Nvidia GPU進行了優(yōu)化,但它也會自動將我們鎖定在其硬件生態(tài)系統(tǒng)中。
總結:CPU 和 GPU 都有不同的優(yōu)勢領域,在為我們的項目選擇最佳硬件時,了解它們的局限性會讓我們更好選擇。
Copyright ? 2013-2020. All Rights Reserved. 恒訊科技 深圳市恒訊科技有限公司 粵ICP備20052954號 IDC證:B1-20230800.移動站