GPU里面对于二维数组的性能

我以前试着用float4等形式来避免在GPU端用二维数组,但是这样在CPU端就会有一个问题啊。

毕竟似乎这个类型是CUDA里面自定义的数据类型,C里面是没有啊,所以常常报错,现实的都是莫名其妙的错误。。。

于是我又回过头来想用二维或者三维数组,问问这样对于GPU性能的发挥有影响没有啊?

[ 本帖最后由 hnuzhoulin 于 2010-4-15 10:46 编辑 ]

呵呵!你导入它定义的库,就行了。
如果是二维数组和三维数组的话,在GPU上处理不太方法。

明白了
呵呵呵
谢谢

当然是可以使用二维和三维矩阵的!
分别使用cudaMallocPitch()和cudaMalloc3D()函数
具体查mannual和programming guide

那分配的是二维和三维的?那明明是一维的!呵呵

型如__device__ a[128][128]
shared a[32][32]
这些二维或者更三维的数组也是支持的
动态分配也可以用我在另一个帖子里说的方法实现

只是通常更推荐用pitch和3D memory

最近一直在忙着中期检查,还好,比较顺利通过

那个我找了一下头文件啊,没有发现有定义float4等内置变量的啊??你知道不??如何导入这些库啊?

不会吧!那个应当是cuda.h里面的啊,我记得这个头文件好像是默认的啊