目標回顧:全書四步學習路徑 (Goals Revisited)

重點總覽 (Overview)

本節是全書的回顧 (recap):重申開頭的承諾,並把整本書拆成 四個學習步驟 (four steps),讓你從「寫得出 CUDA」進展到「把高效能平行程式設計當成一種思考流程 (a thought process, rather than a black art)」。

項目 內容
主要目標 (primary goal) 教會讀者如何 program massively parallel processors
承諾一 培養 computational thinking — 用「適合平行運算」的方式思考問題
承諾二 聚焦 限制平行應用效能的因素,並提供 系統化 (systematic) 的優化方法
交付方式 透過 四個步驟 (four steps) 逐層堆疊
Step 1 (Ch 2–6) CUDA C 基礎 + 計算機架構 + 效能考量 + 優化清單 (optimization checklist)
Step 2 (Ch 7–12) 六大平行模式 (six parallel patterns) + 對應優化技巧
Step 3 (Ch 13–19) 進階模式/應用 + problem decomposition 取捨 + computational thinking 總結 (Ch 19)
Step 4 (Ch 20–22) 進階實務:MPI clusterdynamic parallelism、未來演進
Tip

這是一張「全書地圖」。把每個 sibling/cross-chapter 筆記掛到對應 step,可以快速重建整本書的知識結構。


全書承諾 (The Book's Promise)

開頭在 01-Introduction/03-Overarching-Goals-and-Book-Organization 立下的承諾,在結論被重新檢視:

Important

全書的兩條主線 —「怎麼分解問題 (decomposition / computational thinking)」與「怎麼榨出效能 (optimization)」— 在每一章反覆交織出現,這正是四步路徑要訓練的兩種肌肉。


四步學習路徑 (The Four-Step Learning Journey)

 Step 1: Foundations       Step 2: Core Patterns      Step 3: Advanced          Step 4: Advanced
   (Ch 2-6)                  (Ch 7-12)                  Patterns/Apps (Ch13-19)   Practices (Ch20-22)
 +------------------+       +------------------+       +------------------+       +------------------+
 | CUDA C basics    |       | 6 parallel       |       | advanced apps    |       | MPI cluster      |
 | GPU architecture | ----> | patterns         | ----> | + alt. problem   | ----> | dynamic          |
 | perf considera-  |       | + apply step-1   |       |   decomposition  |       |   parallelism    |
 |   tions          |       |   optimizations  |       | + tradeoffs      |       | future evolution |
 | OPTIMIZATION     |       |                  |       | + comp. thinking |       |                  |
 |   CHECKLIST      |       |                  |       |   recap (Ch 19)  |       |                  |
 +------------------+       +------------------+       +------------------+       +------------------+
   "confident code"          "apply patterns"          "thought process"          "real-world scale"
        建立信心                  套用模式                  養成思維                    擴展到實務
Step 章節 目標 關鍵交付物
1 基礎 (Foundations) Ch 2–6 平行運算 + CUDA C 的核心概念與 效能考量;理解必須處理的 硬體限制 (hardware limitations) 能自信地寫平行碼,並評比不同 threading arrangement / loop structure / coding style 的優劣;結尾給出 optimization checklist
2 核心模式 (Core Patterns) Ch 7–12 導入 六大平行模式,每個都附 具體 code 範例 用模式示範如何克服常見 parallelization / performance obstacles,並把 step 1 的優化套用到多種情境
3 進階模式 (Advanced Patterns) Ch 13–19 用進階模式/應用 鞏固 前面技能;更強調 替代的 problem decomposition 及其資料結構取捨 Ch 19 專門 總結 computational thinking,把前面學到的概念 一般化 成面對新問題的高階思維
4 進階實務 (Advanced Practices) Ch 20–22 接觸真實世界的進階平行實務 Ch 20 MPI + CUDA C 寫 HPC cluster;Ch 21 dynamic parallelism 處理動態變動工作量;Ch 22 其他進階實務與 未來演進

Step 2 — 六大平行模式 (The Six Parallel Patterns, Ch 7–12)

Note

這六個是被證明「對許多應用引入平行性」最有用的模式:

# Pattern 對應筆記
1 Convolution 07-Convolution/01-Convolution-Fundamentals-and-Basic-Kernel
2 Stencil 08-Stencil/01-Stencil-Background-and-Basic-Kernel
3 Histogram 09-Parallel-Histogram/01-Atomic-Operations-and-Basic-Histogram
4 Reduction 10-Reduction/01-Reduction-Fundamentals-and-Simple-Kernel
5 Prefix Sum / Scan 11-Prefix-Sum-Scan/01-Scan-Foundations-and-Kogge-Stone
6 Merge 12-Merge/01-Merge-Foundations-and-Co-Rank-Concept

Step 3 — 進階模式與應用 (Advanced Patterns & Applications, Ch 13–19)

Warning

Step 3 的重點 不只是再套一次優化;而是 探索不同的 problem decomposition分析取捨(例如 output-centric vs input-centric、scatter vs gather、不同稀疏格式)。把 Step 3 當成「只是更多範例」會錯失它真正要訓練的 decomposition 直覺


考試/面試重點 (Exam / Test Patterns)

情境 / 關鍵字 答案 / 技巧
「本書 primary goal?」 教讀者 program massively parallel processors
「作者承諾聚焦哪兩件事?」 (1) computational thinking;(2) 限制效能的因素 + systematic optimization
「全書分成幾個 step?各涵蓋哪些章?」 四步:Ch 2–6 / Ch 7–12 / Ch 13–19 / Ch 20–22
「Step 1 結尾交付什麼?」 optimization checklist(後續各章反覆套用)
「six parallel patterns 是哪些?」 Convolution、Stencil、Histogram、Reduction、Scan、Merge
「Step 3 與 Step 2 的差別?」 Step 3 更強調 替代的 problem decomposition 與 tradeoff 分析,而非單純再套優化
「哪一章專門總結 computational thinking?」 Chapter 19
「Step 4 包含哪三章主題?」 MPI cluster (Ch 20)dynamic parallelism (Ch 21)、advanced practices & future evolution (Ch 22)
「作者對平行程式設計境界的比喻?」 應成為 thought process,而非 black art