PyCUDA,尽管有很多缺点,但通常会提供非常好的示例/可从 wiki 下载。但是我在示例或文档(或粗略的谷歌搜索)中找不到任何东西,展示了 PyCUDA 将工作负载动态分配给多个设备的方式。
任何人都可以暗示我应该做什么或指出我的例子吗?
突然出现在我脑海中的一个想法是使用多处理,生成一个由 N 个进程组成的池,每个进程都绑定到一个设备,然后在调用该类时(我将所有 gpu 函数放在一个单独的类中;可能不是最好的主意,但它工作)它循环的多进程。这是一个多么好的/迟钝的想法?
PS 我的开发机器是 1 个 GPU,我的测试机器是 4 个 GPU,所以我需要任何能够处理动态数量的设备的解决方案(它们的计算能力不同也无济于事,但这就是生活)