关于short型数据的问题

看了一些sdk的例子。。
GPU处理的数据基本都是32位的int型。。
或者32位的float型。。
那如果处理16位short型数据,
对于性能和正确性有什么影响么?
应该有吧,不然大家怎么不用呢?
想到这个了,
不是很清楚,就问一下。。
多谢。。

存取16bit字在计算能力1.0 1.1硬件上会造成非合并访问,需要一个线程处理short2来克服
在所有硬件上容易造成2路bank conflict

正确性没问题

在1.0,1.1的设备上,合并访问的最小字尺寸是4字节,在1.2,1.3上改为1字节了,而且在1.10,1.1的储备上,合并访问要求线程对应的位置不能交叉,因此 short注定是无法合并访问的,而共享存储器,无论在什么类型的设备上,两个short占据一个存储体,如果采用

[offset + tid]

方式访问,会有二路冲突,采用

 [offset + 2*tid]

就没有冲突了。

在fermi上都没有问题