float4矢量类型后的方括号

时间:2014-11-17 16:04:00

标签: cuda shared-memory extern

我正在学习cuda教程;在某些时候,共享内存是动态分配的,如下所示: extern __shared__ float4[] buffer;

除了矢量类型[]之后的方括号float4之外,似乎很容易理解;他们的意思是什么?我为什么要写它们?

1 个答案:

答案 0 :(得分:1)

这用于动态共享内存,正确的方法是:

extern __shared__ float4 buffer[]

,而不是

extern __shared__ float4[] buffer

使用它时,还必须在内核调用中使用已分配内存的大小:

size_t blockSize = theBlockSize * theBlockSize
myfunc<<< NbBlocks, NbThreadsPerBlock , sizeof(float4) * blockSize>>>