我想知道我的CUDA内核将在哪个GPU上运行,以便我可以通过编程方式确定要使用的最佳块大小,以便最大化任何算法的GPU实现的性能。
答案 0 :(得分:3)
是的,deviceQuery示例代码演示了如何在设备上查询信息,例如可用于优化内核启动配置的SM数量。
此外,CUDA提供了一个occupancy API,它演示了如何构造可以产生最高占用率的线程块大小。还有一个sample code。
如果您有3个GPU设备,并且没有在代码中使用cudaSetDevice()
API来选择特定的GPU,则CUDA将在CUDA枚举的第一个GPU上运行您的代码。与deviceQuery
示例代码显示的第一个GPU相同。