第五篇:淺談CPU 並行編程和 GPU 並行編程的區別


前言

  CPU 的並行編程技術,也是高性能計算中的熱點,也是今后要努力學習的方向。那么它和 GPU 並行編程有何區別呢?

  本文將做出詳細的對比,分析各自的特點,為將來深入學習 CPU 並行編程技術打下鋪墊。

區別一:緩存管理方式的不同

  GPU:緩存對程序員不透明,程序員可根據實際情況操縱大部分緩存 (也有一部分緩存是由硬件自行管理)。

  CPU:緩存對程序員透明。應用程序員無法通過編程手段操縱緩存。

區別二:指令模型的不同

  GPU:采用 SIMT - 單指令多線程模型,一條指令配備一組硬件,對應32個線程 (一個線程束)。

  CPU:采用 MIMD - 多指令多數據類型。多條指令構成指令流水線,且每個線程都有獨立的硬件來操縱整個指令流。

  用通俗易懂的話來說,GPU 采用頻繁的線程切換來隱藏存儲延遲,而 CPU 采用復雜的分支預測技術來達到此目的。

區別三:硬件結構的不同

  GPU 內部有很多流多處理器。每個流多處理器都相當於一個“核",而且一個流多處理器每次處理 32 個線程。

  故 GPU 的數據吞吐量非常大,傾向於進行數據並發型優化;而 CPU 則傾向於任務並發型優化。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM