2

在 CUDA 程序中为寄存器(用于节省寄存器的内存)和共享内存(更快的访问)使用无符号短整数是否有意义?

我创建模板设备函数(使用寄存器和共享内存)并将其专门用于 uint 和 ushort。使用:对于 uint:25 个寄存器和速度 460 MB/秒。对于 ushort:26 个寄存器和速度 420 MB/秒。

所以没有理由使用 unsigned short int。

4

1 回答 1

2

我对 CUDA 没有丰富的经验,但我读过,我们应该避免使用无符号类型(Cuda C 最佳实践指南)。

使用共享内存可能是提高应用程序性能的最佳方式。你应该考虑如何优化你的内核。当您经常从全局内存中读取相同的值或者您需要在内核中使用一个线程(所有内核将数据加载到 SM 并停止但首先从 SM 中读取数据而不是从全局内存中),请使用共享内存。

一切都取决于你想做什么。如果您想优化内核,请发布一些代码。

于 2012-10-04T19:18:41.903 回答