計算機組織與結構›Ch6 記憶體(Memory)第 5 題/共 83 題
5. LLM Inference、Quantization、Memory Hierarchy、Cache
#CC-06-005中LLM InferenceQuantizationMemory HierarchyCache
關於 LLM 推論(inference)、量化(quantization)與記憶體階層,考慮在一個具有下列規格的 CPU 系統上執行大型語言模型推論:
- L1 cache:每核心 32 KB,延遲 4 cycles
- L2 cache:每核心 256 KB,延遲 12 cycles
- L3 cache:共享 32 MB,延遲 40 cycles
- 主記憶體:64 GB DDR5,延遲 200 cycles,頻寬 50 GB/s
- 模型共有 70 億個參數
下列程式碼針對一個 transformer layer 執行單次矩陣向量乘法:
// 權重矩陣 W: 4096 x 4096,activation 向量 x: 4096
// FP16: 每元素2 bytes,INT8: 每元素1 byte,INT4: 每元素0.5 bytes
void matvec(void *W, float *x, float *y, int N, int precision) {
for (int i = 0; i < N; i++) {
float sum = 0;
for (int j = 0; j < N; j++) {
float w = dequantize(W, i, j, precision);
sum += w * x[j];
}
y[i] = sum;
}
}
請選出正確的敘述。
參考答案與解析
答案 (B)(C)(D)。權重矩陣4096×4096個元素,FP16(2bytes)剛好是4096×4096×2=32MB,『剛好』等於整個L3大小,完全沒有多餘空間放activations等其他資料,(A)『舒適地放進且還有空間』錯誤。FP16→INT4每個元素從2bytes降到0.5bytes,頻寬需求降為1/4,(B)對。activation向量x為4096個float=16KB,遠小於32KB的L1,只要迴圈順序讓x保持被重複存取(例如x當作內層迴圈的固定資料),可以整個留在L1,(C)對。對memory-bound workload而言,FP16→INT8資料量減半,總搬移量減半約等於throughput(tokens/s)加倍,(D)對。(E)7B參數用INT4約需3.5GB,遠遠超過L3的32MB容量(差了約100倍),不可能整個放進L3,(E)錯。
📄 台大115
▤完整推導請見《WH 資工筆記 · 計算機組織與結構》Ch6 記憶體(Memory)