我的机器上有两张NVIDIA显卡。我想在其中一个上执行CUDA内核(例如,在第二个上)。唉,在教程中我没有找到内存分配和内核执行的设备选择,就像OpenCL一样。
难道你不能告诉我,我如何选择视频设备执行内核并分配内存?
答案 0 :(得分:1)
这可能就是你要找的东西:
cudaError_t cudaSetDevice (int device)
链接到NVIDIA API文档:
从以上链接引用:
随后使用cudaMalloc(),cudaMallocPitch()或cudaMallocArray()从此主机线程分配的任何设备内存将物理驻留在设备上。使用cudaMallocHost()或cudaHostAlloc()或cudaHostRegister()从此主机线程分配的任何主机内存都将使其生命周期与设备相关联。从此主机线程创建的任何流或事件都将与设备关联。使用<<<>>>从此主机线程启动的任何内核operator或cudaLaunch()将在设备上执行。