如何从笔记本电脑 GPU 获得最大 CUDA 性能

如何从笔记本电脑 GPU 获得最大 CUDA 性能

我有一台 ASUSN56V 笔记本电脑,配备 GeForce GT 650M 和 i7-3610QM,我想使用该卡进行 CUDA 计算。从我的扩展测试中我得到的印象是,在运行具有多个线程的分子动力学程序时,我的 GPU 没有得到最大利用。具体来说,如果我使用 1 个线程,我可以获得 3 倍的速度,性能增益逐渐下降,并且随着线程数超过 4 个而变得更糟。所以我的问题是:

  1. 为什么 nvidia-smi 命令仅打印 TEMP、MEMORY 和 Compute M.?其余部分则打印 N/A。是不是因为该 GPU 不支持其他功能?

  2. 我尝试通过给出以下命令来利用 GPU 的所有计算能力,但没有任何性能提升:

    nvidia-smi -i 0 -c 3
    nvidia-smi -i 0 -pm 1
    nvidia-smi -i 0 --gom=1
    

    最后一个返回:

    GPU 0000:01:00.0 不支持 GOM 功能。视为警告并继续。全部完成。

在 CUDA 计算期间,我还能做些什么来最大限度地利用 GPU?不幸的是,我的 BIOS 菜单不支持关闭板载显卡,而华硕支持人员表示他们对此无能为力。

我将非常感激任何建议!

答案1

gpu 是单线程设备,因此使用多个线程只会减慢整个过程。如果您想利用所有 cpu 核心,请使用 1 个线程向 gpu 发送命令,并在其他线程上执行其他操作(非 gpu 操作)。如果您的集成 gpu 支持 opencl,您也可以使用该组件。因此,这将是 2 个线程与 2 个 gpu 通信,其余线程执行其他操作。

相关内容