異質平行運算與對運算速度的需求 練習題 (Practice - Heterogeneous Parallel Computing and the Demand for Speed)

Question 1 - CPU 與 GPU 的設計哲學 [recall]

情境/題目:為什麼 GPU 與 CPU 在峰值 floating-point throughput 上有如此巨大的差距?分別描述兩者的設計哲學與晶片資源分配。

Question 2 - Multicore vs Many-thread 路線 [recall]

情境/題目:自 2003 年起(因 clock frequency 受能耗與散熱限制),半導體業分成哪兩條設計路線?各自的訴求與代表處理器為何?

Question 3 - CUDA 的誕生與 GPGPU 的限制 [recall]

情境/題目:CUDA 在哪一年由誰推出?它解決了先前 GPGPU 程式設計的什麼根本限制?

Question 4 - 平行程式設計的四大挑戰 [recall]

情境/題目:本章指出要在平行程式中達到高效能會遇到哪四大挑戰?

Question 5 - 相關平行程式介面 [recall]

情境/題目:比較 OpenMP、MPI、OpenCL 三種平行程式介面的目標系統與運作機制。

Question 6 - 本書的三大整體目標 [recall]

情境/題目:PMPP 提出的三大整體目標 (overarching goals) 是什麼?達成 future scalability 的關鍵手段為何?

Question 7 - Amdahl's Law(p = 30%) [application]

情境/題目:某應用 30% 的執行時間可被平行化。若把這部分加速到「無限大」,整體最多能得到多少倍加速?縮短多少執行時間?

Question 8 - Speedup 定義與 Amdahl's Law(p = 99%) [application]

情境/題目:某應用在 system B 執行 200 秒、在 system A 執行 10 秒,A 對 B 的 speedup 是多少?另外,若 99% 可平行且該部分加速 100×,整體加速約多少?

Question 9 - 降低延遲 vs 提高吞吐的成本取捨 [analysis]

情境/題目:從晶片面積與功耗的角度,比較「把算術吞吐量加倍」與「把算術延遲減半」兩種做法的成本,並說明這如何決定 GPU 的設計取捨。

Question 10 - 為何只有 ~10× 加速:memory-bound vs compute-bound [analysis]

情境/題目:為什麼「直接 (straightforward) 平行化」一個應用往往只拿到約 10× 加速?要再突破需要做什麼?並比較 memory-bound 與 compute-bound 的差異。