0
請注意,此共享內存陣列從不寫入,只能讀取。高效地初始化CUDA中的共享內存陣列
當我有它,我的共享內存被初始化,如:
__shared__ float TMshared[2592];
for (int i = 0; i< 2592; i++)
{
TMshared[i] = TM[i];
}
__syncthreads();
(TM傳遞到從內核啓動的所有線程)
您可能已經注意到,這是因爲有非常低效沒有進行並行化,並且同一個塊內的線程正在寫入相同的位置。
有人可以請推薦一個更有效的方法/評論,如果這個問題真的需要優化,因爲共享數組問題相對較小?
謝謝!
NICE。 「#define SSIZE 2592」到底在哪裏?在cu文件的頂部,__global__內核之外? – Jordan
另外,使用#define有什麼意義?它是否提供了一個優勢,而不是僅僅在適當的地方編碼2592? – Jordan
是的,定義通常位於文件的頂部,但我確信您可以將它放在任何位置(在代碼中使用之前的任何位置)。沒有明確的代碼或性能優勢的定義與2592.然而,如果我改變我的共享內存陣列的大小,我只需要在一個地方改變它。 –