看过这个定义
dim3 threads(BLOCK_SIZE,BLOCK_SIZE);
也有这个定义
dim3 threads(1,1,1) 还有这样的dim3 grid(1,1)
感觉上前面既然是dim3了后面就应该是3个参数啊 :o
问题问的不知道清楚不 高手指教下 轻拍啊
看过这个定义
dim3 threads(BLOCK_SIZE,BLOCK_SIZE);
也有这个定义
dim3 threads(1,1,1) 还有这样的dim3 grid(1,1)
感觉上前面既然是dim3了后面就应该是3个参数啊 :o
问题问的不知道清楚不 高手指教下 轻拍啊
LZ您好,dim3 类型的变量但是只给两个参数是可以的,programming guide里面也经常这样干。没有标明的参数默认为1。
在cuda C programming guide 的Appendix B.的B.3.2中有如下解释:[attach]2989[/attach]
大致如上,祝您编码顺利~
struct device_builtin dim3
{
unsigned int x, y, z;
#if defined(__cplusplus)
host device dim3(unsigned int vx = 1, unsigned int vy = 1, unsigned int vz = 1) : x(vx), y(vy), z(vz) {}
host device dim3(uint3 v) : x(v.x), y(v.y), z(v.z) {}
host device operator uint3(void) { uint3 t; t.x = x; t.y = y; t.z = z; return t; }
#endif /* __cplusplus */
};
这是dim3的原型,可以看到里面有2个构造dim3的函数,当你缺少参数的时候,默认会写入1