【发布时间】:2014-11-17 16:04:00
【问题描述】:
我正在学习 cuda 教程;在某些时候,共享内存是动态分配的,如下所示:
extern __shared__ float4[] buffer;
除了向量类型float4后面的方括号[]外,似乎很容易理解;他们的意思是什么?我为什么要写它们?
【问题讨论】:
-
documentation 可能很有趣。
标签: cuda shared-memory extern
我正在学习 cuda 教程;在某些时候,共享内存是动态分配的,如下所示:
extern __shared__ float4[] buffer;
除了向量类型float4后面的方括号[]外,似乎很容易理解;他们的意思是什么?我为什么要写它们?
【问题讨论】:
标签: cuda shared-memory extern
这用于动态共享内存,正确的方法是:
extern __shared__ float4 buffer[]
,不是
extern __shared__ float4[] buffer
当你使用这个时,你还必须在内核调用中使用分配内存的大小:
size_t blockSize = theBlockSize * theBlockSize
myfunc<<< NbBlocks, NbThreadsPerBlock , sizeof(float4) * blockSize>>>
【讨论】: