113 台大資工所硬體考點分析
計結段直接把 IEEE Spectrum 的 MLPerf 報導印上去,考 FP8 格式、LLM 訓練與 DGX GH200 的頻寬瓶頸。OS 段回到手寫申論。
題型與配分
科目:計算機結構與作業系統(113 年起去掉科目後面的「(B)」),題號 311、節次 2,全卷 100 分、9 頁、12 題。試題隨卷繳回。
| 區段 | 題號 | 配分 | 作答方式 |
|---|---|---|---|
| Part I:計算機結構 | 1–8 | 50% | 電腦閱卷答案卡,複選題、每一選項分別計分 |
| Part II:作業系統 | 9–12 | 50% | 手寫答案卷 |
這一年是「半卡半卷」的混合形式:前 8 題劃卡、後 4 題手寫,卷首明訂「只有依照上述方式作答的答案才會計分」——寫錯地方就不計分。
Part II 另外三條規定:題目會刻意給多餘或缺漏的假設(連續第七年)、「沒有依題號順序作答可能不予計分」、可以用英文或中文作答。
複選題「每一選項分別計分,只有答對的選項得分」 —— 不倒扣。
Part I 的結構:G1 基礎計組(第 1–3 題,15 分)、G2 大型語言模型與計算機結構(第 4–6 題,15 分)、G3 為 LLM 設計晶片與系統(第 7–8 題,20 分)。
Part I:計算機結構(1–8,50 分)
G1 基礎計組(第 1–3 題,15 分)
- 第 1 題(5%)|功耗管理——涵蓋 能不能「同時」提高時脈又降低供應電壓、由動態功耗與電壓的關係推算降壓後的功耗、記憶體受限程式對時脈下降的敏感度、DVFS 降的是動態功耗還是洩漏功耗、快取關閉前要處理什麼。動態功耗公式要能直接拿來算
- 第 2 題(5%)|管線對時脈週期的影響:各級延遲 IF 500/ID 700/EX 300/MEM 600/WB 400 ps,指令組合 ALU 40%/Jump-Branch 15%/Load 25%/Store 20%。選項問非管線化與管線化的週期、load 在兩種設計下的延遲比、資料記憶體的使用率、吞吐量提升倍數。「非管線化」的定義會影響某些選項的判斷,要注意各類指令實際走過哪幾級
- 第 3 題(5%)|記憶體階層——涵蓋 3C 模型的三個 C 分別是什麼、write-through 與 write-back 的定義、VIVT 快取為何能在 TLB 轉換前就開始搜尋、寫入無效化協定下多執行緒程式為何可能多出失誤。定義類的選項要小心被對調
G2 大型語言模型(第 4–6 題,15 分)
卷上完整印出 IEEE Spectrum 2023 年 6 月的報導〈Intel and Nvidia Square Off in GPT-3 Time Trials〉,講 MLPerf 新增 LLM 訓練基準、Nvidia H100 對 Intel Habana Gaudi2 的比較。
- 第 4 題(5%)|兩種 FP8 格式:E4M3(4 指數 3 尾數)與 E5M2(5 指數 2 尾數)。選項比較兩者的最大值與最小值、拿它們跟 8-bit 與 16-bit 無號整數的最大值比,還有一項問「整個 transformer 能不能都用 FP8 計算」。要會算兩種格式的指數偏移與最大值,E4M3 有特殊的編碼規則(沒有無窮大)要注意。最後一項要回到文章去找依據
- 第 5 題(5%)|依文章判斷 GPT-3 訓練——涵蓋 能不能用基準結果外推完整訓練時間、MLPerf 這類 LLM 基準評的是「準確度」還是「達到特定準確度所需的時間」、平行運算的必要性、加速器數量增加時訓練效率往哪個方向走。最後一項要看圖判斷
- 第 6 題(5%)|依文章與新結果判斷——涵蓋 GPU 是不是「總是」比其他加速器快、混合精度帶來的提升幅度夠不夠翻轉原本的差距、送測結果的平台分布、製程世代、推薦系統基準的建立難度。第二項要真的把文中兩個倍數拿來比較,不能只讀「預期具競爭力」這句話
G3 為 LLM 設計晶片與系統(第 7–8 題,20 分)
- 第 7 題(10%)|用 roofline 判斷該優化什麼:MIT 的 TinyChat 在邊緣裝置上,Generation 階段佔了 340 ms 中的 310 ms,而 Generation 的算術強度只有 1(W16A16)或 4(W4A16),Context 階段則 ≥ 165。選項問增加運算單元、提高記憶體頻寬、提高時脈對每瓦吞吐量的影響、改善分支預測器、把參數從 FP16 壓成 FP8 各自有沒有效。先用算術強度判斷 Generation 階段落在 roofline 的哪一區,再逐項判斷
- 第 8 題(10%)|DGX GH200 的系統層瓶頸分析:32 顆 GH200 超級晶片、128 petaFLOPS FP8、19.5 TB 共享記憶體;單顆 GH200 有 ≤480 GB LPDDR5X CPU 記憶體與 ≤144 GB HBM3e GPU 記憶體,透過 NVLink-C2C 形成一致的統一位址空間。假設 LLM 用 FP8、算術強度 1 FLOPs/Byte。
- 選項涉及只用 GPU 記憶體時的容量與效能上限(選項給了一個數字,要自己驗算)、改用統一記憶體訓練更大模型時速度會不會變、用 SSD 陣列替代 CPU 記憶體、cache blocking 的原理
- 要從各層記憶體的頻寬規格判斷瓶頸在哪,而且要知道頻寬數字接近不代表延遲可比
- cache blocking 那一項要回想它的正確定義,109 年第 1(g) 題考過
Part II:作業系統(9–12,50 分)
- 第 9 題(20%,十個是非各 2 分)|對答 Yes,錯就簡述理由:
- A. 執行緒數與效能是不是單調關係
- B. 頁框數與頁錯誤率是不是單調關係
- C. 時間量子大小與平均周轉時間的方向——切換開銷是判準
- D. 韌體在 ROM 執行與在 RAM 執行誰快——想想為什麼會有 shadowing 這種做法。109 年第 2(e) 題把同一句反過來寫
- E. 工作集模型是不是「必須」由 MMU 支援——絕對字眼要先檢查
- F. safe state 會不會走向死結——注意這與「unsafe 會不會死結」是兩個不同方向的命題
- G. 上下文切換有沒有硬體指令支援
- H. Session 語意下,一方的變更何時對其他人可見(109 年第 2(h) 題考的是 UNIX 語意,這一年換成 session 語意——兩種語意的分界一定要記熟)
- I. 即時排程器是不是依「即時優先權」排程——要想到不同即時排程演算法的依據不同
- J. 兩階段鎖定保證了什麼、沒保證什麼(與 109 年第 2(j) 題一字不差)
- 第 10 題(5%)|滑鼠移動到畫面重繪的完整鏈路:滑鼠驅動程式(不是 ISR)做什麼、驅動程式怎麼被呼叫、視窗管理器怎麼知道要重繪。要分清中斷處理的上半部與下半部,並一路講到使用者空間的視窗管理器。與 107 年第 12 題是同一個考點
- 第 11 題(10%)|侵入式鏈結串列(intrusive linked list)為什麼比傳統鏈結串列快——題目的提示直指「記憶體相關的優勢」,所以要從配置次數、指標追逐的次數、空間區域性與快取失誤這幾個角度去論述。Linux 核心的
list_head就是這個設計,值得先讀過 - 第 12 題(15%)|兩小題:
- 5 分|Round Robin 排程器如何實作才能讓每個工作精準地每 1 毫秒被搶占、之後再無限期恢復。要講到硬體的哪個機制觸發搶占
- 10 分|寫出精簡的虛擬碼:一個常駐迴圈工作 T,執行 1 秒、然後阻塞 1 秒,要有註解。提示說「可能需要非同步 I/O」——重點是阻塞期間要真的讓出 CPU,不能用忙碌等待
這份考卷的難點
- G2、G3 合計 35 分全部建立在一篇英文新聞報導上。 要在考場上讀完三頁 IEEE Spectrum 的文章,再回答 FP8 格式的數值範圍、MLPerf 的方法論、DGX GH200 的頻寬計算。閱讀速度直接決定這 35 分。
- 第 4 題要真的算 FP8 的最大值。 兩種格式的指數偏移不同,E4M3 還有非標準的特殊值處理,要算完再跟整數最大值比。
- 第 8 題是「用規格表做系統層瓶頸分析」。 要從 HBM3e、NVLink-C2C、PCIe、SSD 的頻寬之中判斷哪個是瓶頸,並理解頻寬數字接近不代表延遲可比。
- 第 8 題的 cache blocking 定義:這個概念在 109 年第 1(g) 題考過,兩年對照就能看出差異。
準備建議
- 台大硬體會整卷跟著當年度的技術熱點走:107 年 Meltdown、109 年 CNN、113 年 LLM 與 MLPerf、115 年 AI 與安全關鍵系統。考前務必讀幾篇當年度的 IEEE Spectrum/MLPerf/晶片發表新聞
- roofline 的判斷是台大硬體十年最穩定的主線(106 第 3 題、109 第 1(j) 題、112 第 1–5 題、113 第 7 題)。要練到能從算術強度判斷落在哪一區、進而判斷哪種優化有效
- 低精度浮點格式(FP8 的 E4M3/E5M2、BF16)是 113 年新增的考點,要會算指數偏移、最大值、最小非正規化值。這是近年各校共同的新趨勢
- cache blocking/tiling 的正確定義(113 第 8 題、109 第 1(g) 題)
- Part II 的十個是非題(20 分)幾乎年年重複:113 年有五題與 109 年第 2 題重疊或互為反面(Belady、韌體在 RAM 還是 ROM、UNIX/session 語意、2PL、safe state)。109 與 113 一起練,這 20 分幾乎是送分
- 侵入式鏈結串列(第 11 題)是 Linux 核心特有的設計,課本不會教,要能從記憶體的角度講出它的優點
- 不倒扣,Part I 每一題每一選項都該作答;Part II 全手寫,必須依題號順序作答,寫亂了可能不計分