002-【CMU15-418】【并行計算架構(gòu)和編程】【中英字幕】【A Moder

1. 今天的課程主題是并行計算的硬件視角,介紹了如何利用圖形處理器(GPU)進行并行計算。
2. 硬件人員在層次結(jié)構(gòu)的多個級別上設(shè)置了并行計算的潛力,有些是對程序員不可見的,有些需要程序員或編譯器生成適當(dāng)?shù)拇a。
3. 在計算機體系結(jié)構(gòu)中,性能問題主要涉及到并行性和內(nèi)存訪問的效率。
4. 傳統(tǒng)的順序執(zhí)行模型在多核處理器上無法實現(xiàn)真正的指令級并行性,需要使用線程編程來實現(xiàn)并行計算。
5. 并行計算的挑戰(zhàn)包括負載平衡、通信延遲和資源利用率等問題,這些問題在實際應(yīng)用中經(jīng)常出現(xiàn)。
6. 并行計算可以提高程序的性能,但編寫并行代碼和優(yōu)化性能是有挑戰(zhàn)的。
7. 可以使用一種描述尷尬并行計算的語言來簡化并行編程。
8. 并行計算可以節(jié)省功耗和時間開銷,因為通信成本較低。
9. 現(xiàn)代處理器都具有多個核心,甚至圖形處理單元(GPU)也采用了類似的并行設(shè)計。
10. SIMD(單指令多數(shù)據(jù))處理可以通過一條指令同時操作多個數(shù)據(jù)值,提高并行計算效率。
11. 在SIMD領(lǐng)域,一種重要的概念是一致性(coherence),它指的是所有操作都要做相同的事情,而與此相反的是分歧(divergence)。SIMD的處理能力可以通過硬件進行并行計算,可以進行字節(jié)級別的操作,也可以進行浮點運算。
11. AVX是一種SIMD指令集,可以進行字節(jié)、短整型、整型和浮點數(shù)的操作。AVX2是AVX的當(dāng)前版本,AVX512是下一代版本。
12. GPU使用SPMD(單程序多數(shù)據(jù))模型進行計算,底層使用SIMD實現(xiàn)邏輯。GPU的核心看起來與Intel處理器核心非常不同,但它們都支持SIMD。
13. 緩存是為了減少內(nèi)存訪問的延遲和提高帶寬而存在的。硬件可以通過預(yù)?。╬refetching)來預(yù)先加載數(shù)據(jù),以減少延遲。
14. 多線程可以在同一核心上同時執(zhí)行多個獨立的線程,以減少延遲。這也是超線程的基本原理。
15. 通過多線程和預(yù)取等技術(shù),可以提高系統(tǒng)的吞吐量,從而隱藏延遲。
16. 線程調(diào)度是由操作系統(tǒng)還是硬件來完成的,這取決于CPU還是GPU。
17. 并行計算的一個主要優(yōu)勢是可以將關(guān)鍵資源轉(zhuǎn)化為通過系統(tǒng)的吞吐量,而不是特定操作所需的時間。
18. 超線程技術(shù)可以在現(xiàn)代處理器中支持多個線程運行,它通過復(fù)制寄存器和共享執(zhí)行單元、內(nèi)存和緩存來實現(xiàn)。
19. GPU具有更高的并行性和吞吐量,適用于某些類型的應(yīng)用程序,而CPU則更適合低延遲的任務(wù)。
20. 內(nèi)存帶寬通常比算術(shù)速度更具限制性,因此在編程時需要采取一些技巧來減少帶寬的使用。