計算機組織與結構›Ch2 計算機算術(Arithmetic)第 22 題/共 26 題
22. Floating-Point Unit、Datapath
#CC-02-022易Floating-Point UnitDatapath
迴旋神經網路(Convolution neural networks, CNNs)已經被廣泛應用在許多不同的應用領域。然而,由於 CNN 需要很高的運算量與龐大的記憶體足跡(memory footprint),客製化嵌入式處理器的設計以滿足目標應用所要求的時序限制(timing constraints),是一項重要的工作。在各種運算之中,矩陣運算(matrix operations)是 CNN 中很耗時的函式,也是硬體與軟體最佳化的重要目標,以加速 CNN 的運算。給定以下卷積運算(convolution operations)的部分 C 程式碼,其中有三個 N-by-N 矩陣(A、B、C),儲存的是雙精度浮點數(double-precision floating-point numbers,每個數字佔 8 bytes)。請回答以下與處理器設計及軟體最佳化相關的問題。
for (int x = 0; x < N; ++x)
for (int y = 0; y < N; ++y)
for (int z = 0; z < N; ++z)
C[x+y*N] += A[x+z*N] * B[z+y*N]; (a)
如果我們想要加速上述運算的浮點數運算速度,應該最佳化目標 CPU 的哪個(或哪些)資料路徑(datapath)?
📄 成大110
▤完整推導請見《WH 資工筆記 · 計算機組織與結構》Ch2 計算機算術(Arithmetic)