关于一些随机的没有。一代我有如下选择:
1-生成随机编号。在 GPU 上并在内核中使用
2-生成随机编号。在 CPU 上并通过 PCI-e 在内核中发送
3- 使用内核中编写的散列函数生成随机数
我如何决定哪个是最好的?有什么通用的指导方针吗?
选择 1 应该是最好的。CUDA 提供 cuRAND 库来生成各种分布的随机数。它旨在具有最佳性能。
选择 2 的性能相对较差。该图显示了 GPU 和 CPU 在随机数生成方面的性能差距。
选项 3 是不必要的,因为您正在尝试使用这种方法重新实现 cuRAND 库。
详情请参考 cuRAND 主页和文档。