【发布时间】:2014-11-10 18:17:56
【问题描述】:
我的机器上有两张 NVIDIA 卡。我想在其中一个上执行一个 CUDA 内核(例如,在第二个上)。唉,在教程中我没有找到用于内存分配和内核执行的设备选择,就像为 OpenCL 所做的那样。
你能不能告诉我,我该如何选择视频设备来执行内核和分配内存?
【问题讨论】:
标签: cuda
我的机器上有两张 NVIDIA 卡。我想在其中一个上执行一个 CUDA 内核(例如,在第二个上)。唉,在教程中我没有找到用于内存分配和内核执行的设备选择,就像为 OpenCL 所做的那样。
你能不能告诉我,我该如何选择视频设备来执行内核和分配内存?
【问题讨论】:
标签: cuda
这可能就是你要找的东西:
cudaError_t cudaSetDevice (int device)
NVIDIA API 文档链接:
引用以上链接:
随后使用 cudaMalloc()、cudaMallocPitch() 或 cudaMallocArray() 从此主机线程分配的任何设备内存将物理驻留在设备上。使用 cudaMallocHost() 或 cudaHostAlloc() 或 cudaHostRegister() 从该主机线程分配的任何主机内存都将具有与设备相关联的生命周期。从此主机线程创建的任何流或事件都将与设备相关联。使用 >> 运算符或 cudaLaunch() 从该主机线程启动的任何内核都将在设备上执行。
【讨论】: