計算機組織與結構›Ch2 計算機算術(Arithmetic)第 23 題/共 26 題
23. Floating-Point Emulation、Software Emulation
#CC-02-023易Floating-Point EmulationSoftware Emulation
迴旋神經網路(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)
(3) [5%] 有時候,嵌入式處理器可能沒有浮點數運算的硬體支援。在這樣的嵌入式平台上,浮點數運算可以透過軟體實作(作為函式庫常式)或整數運算來模擬(emulate)。請問用整數運算模擬浮點數運算的技術是什麼?
(4) [5%] 承上題。這兩種模擬技術中,哪一種在運算效率(computation efficiency)上比較好?
📄 成大110
▤完整推導請見《WH 資工筆記 · 計算機組織與結構》Ch2 計算機算術(Arithmetic)