这是一个相当简单的问题,但谷歌搜索似乎没有答案,所以。
我想知道的是,如果我有两个能够运行 cuda 的 gpu 卡(相同),我的内核可以跨越这些卡吗?还是绑定到一张卡或另一张卡?即 cuda 提供了整套可用的 gpu 内核,或者只是运行它的卡上的内核。
如果是这样,为了实现它,我需要了解什么特别的东西吗?除了 cuda sdk 之外还有什么值得了解的例子吗?
目标语言当然是 C/C++。
这是一个相当简单的问题,但谷歌搜索似乎没有答案,所以。
我想知道的是,如果我有两个能够运行 cuda 的 gpu 卡(相同),我的内核可以跨越这些卡吗?还是绑定到一张卡或另一张卡?即 cuda 提供了整套可用的 gpu 内核,或者只是运行它的卡上的内核。
如果是这样,为了实现它,我需要了解什么特别的东西吗?除了 cuda sdk 之外还有什么值得了解的例子吗?
目标语言当然是 C/C++。
单个 CUDA 内核启动绑定到单个 GPU。为了使用多个 GPU,需要启动多个内核。
cuda 设备运行时 API专注于选择的任何设备。任何给定的内核启动都将在最近使用的任何设备上启动cudaSetDevice()
多 GPU 编程示例在 cuda 示例simple multi-gpu with P2P和simple multi-gpu中给出