簡體   English   中英

了解CUDA中的矩陣乘法

[英]understanding Matrix multiplication in CUDA

我正在嘗試學習CUDA。 我開始嘗試的幫助下矩陣乘法文章基於GPU。 我的主要問題是我不太了解如何在內核中訪問2D數組,因為訪問2D數組與常規方法(matrix [i] [j])有點不同。 這是我卡住的部分:

for (int i = 0; i < N; i++) {
    tmpSum += A[ROW * N + i] * B[i * N + COL];
}
C[ROW * N + COL] = tmpSum;

我可以理解ROW和COLUMN是如何派生的。

int ROW = blockIdx.y*blockDim.y+threadIdx.y;
int COL = blockIdx.x*blockDim.x+threadIdx.x;

高度贊賞帶有示例的任何解釋。 謝謝!

矩陣是連續存儲的,即在連續位置的每一行之后。 您在此處看到的稱為平面地址,即將兩個元素的索引旋轉為與第一個元素的偏移。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM