計算機組織與結構›Ch6 記憶體(Memory)
第 61 題/共 83 題
◀ CC 61/83
61. Cache Size、Cache Conflicts
#CC-06-061易Cache SizeCache Conflicts

迴旋神經網路(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)

當 N 為 64 時,能夠容納這三個矩陣所有資料、且不產生快取衝突(cache conflicts)的最小 L1 資料快取(data cache)大小是多少?注意:快取大小應以 2 的冪次(powers of 2)表示。

📄 成大110
跳轉到第題
▤完整推導請見《WH 資工筆記 · 計算機組織與結構》Ch6 記憶體(Memory)
本章題號 · 61–80 / 83