【问题标题】:How to execute CUDA kernel on given GPU?如何在给定的 GPU 上执行 CUDA 内核?
【发布时间】:2014-11-10 18:17:56
【问题描述】:

我的机器上有两张 NVIDIA 卡。我想在其中一个上执行一个 CUDA 内核(例如,在第二个上)。唉,在教程中我没有找到用于内存分配和内核执行的设备选择,就像为 OpenCL 所做的那样。

你能不能告诉我,我该如何选择视频设备来执行内核和分配内存?

【问题讨论】:

    标签: cuda


    【解决方案1】:

    这可能就是你要找的东西:

    cudaError_t cudaSetDevice (int device)  
    

    NVIDIA API 文档链接:

    http://developer.download.nvidia.com/compute/cuda/4_1/rel/toolkit/docs/online/group__CUDART__DEVICE_g418c299b069c4803bfb7cab4943da383.html

    引用以上链接:

    随后使用 cudaMalloc()、cudaMallocPitch() 或 cudaMallocArray() 从此主机线程分配的任何设备内存将物理驻留在设备上。使用 cudaMallocHost() 或 cudaHostAlloc() 或 cudaHostRegister() 从该主机线程分配的任何主机内存都将具有与设备相关联的生命周期。从此主机线程创建的任何流或事件都将与设备相关联。使用 >> 运算符或 cudaLaunch() 从该主机线程启动的任何内核都将在设备上执行。

    【讨论】:

    • 还有cuda示例代码,如simple multi-gpu。 “此应用程序演示了如何使用新的 CUDA 4.0 API 进行 CUDA 上下文管理和多线程访问,以便在多 GPU 上运行 CUDA 内核。”
    猜你喜欢
    • 1970-01-01
    • 2011-09-25
    • 2011-05-01
    • 2016-04-17
    • 1970-01-01
    • 2013-04-07
    • 2016-10-21
    • 1970-01-01
    • 2015-01-27
    相关资源
    最近更新 更多