1
我有一個這樣的CUDA內核函數:如何獲取CUDA內核函數中數組的大小?
__global__ void kernel(int a, int b)
{
extern __shared__ unsigned char array[];
//int size = /*size of array*/; = 16
}
和功能主要我把它叫做:
sharedMemSize = 16;
kernel<<<gridSize, blockSize, sharedMemSize>>>(1, 2);
我怎樣才能得到共享存儲陣列的大小? 這是我第一次在StackOverflow上有一個問題:)謝謝!
或模板參數 – talonmies 2015-04-04 21:22:49
動態分配共享內存的模板參數? – 2015-04-04 22:28:44
爲什麼不呢?通常只有非常有限數量的共享內存大小,大多數內核實際上已經啓動了,因此大小和一些編譯時間實例的模板參數可以覆蓋這些內存大小。擁有已知的常量可以通過改進編譯器優化來提高性能。然後動態分配可以一起移除並替換爲模板靜態分配。 – talonmies 2015-04-05 04:57:22