在CUDA程序中对寄存器(用于保存寄存器的存储器)和共享存储器(更快访问)使用无符号短整数是否有意义?
我创建模板设备功能(使用寄存器和共享内存)并将其专门用于uint和ushort。 使用: 对于uint:25个寄存器,速度为460 MB /秒。 对于ushort:26个寄存器和速度420 MB /秒。
所以没有理由使用unsigned short int。
答案 0 :(得分:2)
我没有CUDA的丰富经验,但我读过,我们应该避免使用无符号类型(Cuda C Best Practices Guide)。
使用共享内存可能是提高应用性能的最佳方式。您应该考虑如何优化内核。当您经常从全局内存中读取相同的值或者您需要在内核中使用一个线程(所有内核加载数据到SM并停止但首先从SM读取数据而不是从全局内存中读取数据)时,请使用共享内存。
一切都取决于你想做什么。如果您想优化内核,请发布一些代码。