如何使副本在 nvidia 显卡而不是英特尔集成显卡上运行

Posted

技术标签:

【中文标题】如何使副本在 nvidia 显卡而不是英特尔集成显卡上运行【英文标题】:how to make cupy run on nvidia graphics insted of intel integrated graphics 【发布时间】:2019-12-24 03:05:29 【问题描述】:

我试图让我的代码在我的 GTX970m 上运行,但它却在我的英特尔集成显卡上运行

我试过了

cp.cuda.Device(1).use()

因为 0 是我的英特尔图形 但我得到了

cupy.cuda.runtime.CUDARuntimeError: cudaErrorInvalidDevice: invalid device ordinal

我的电脑运行的是 windows 10 64 位,在英特尔图形上我的代码执行完美(而且速度很慢)

这是我的代码正在执行的操作: 我有一个 1000 x 1000 的 numpy 矩阵,称为 phi 然后我这样做:

def matrix_step_alt_gpu(phi):
    phiNPlus1 = phi.copy()
    phiNPlus1_c = (1 / (DX ** 2 + DY ** 2)) * ((DY ** 2 * cp.dot(LEFT, phi)) + (DX ** 2 * cp.dot(phi, LEFT)))
    phiNPlus1[1:-1, 1:-1] = phiNPlus1_c[1:-1, 1:-1]
    return phiNPlus1

我重复直到这个数字(np.float64...)小于 10^-6:

np.float64(np.max(np.abs(phiNPlus1 - phi)) / PHI_0[0, 1])

只是为了消除任何疑问,我还使用任务管理器的性能选项卡进行了检查

没有运行:

一些使用cupy运行的代码:

【问题讨论】:

您有一台 Optimus 笔记本电脑。您可能需要set an optimus profile 才能让 NVIDIA GPU 在您的 Python 会话期间处于活动状态。 【参考方案1】:

您可能需要先设置CUDA_VISIBLE_DEVICES 变量:

How do I select which GPU to run a job on?

希望该问题的答案有所帮助。

【讨论】:

我尝试设置 CUDA_VISIBLE_DEVICES 这是我在 Windows 上找到的但没有运气也尝试了``` import os os.environ["CUDA_DEVICE_ORDER"]="PCI_BUS_ID" os.environ["CUDA_VISIBLE_DEVICES"]= "1" ``` 但它返回 ``` cupy.cuda.runtime.CUDARuntimeError: cudaErrorNoDevice: no CUDA-capable device is detected【参考方案2】:

CuPy 无法在英特尔集成显卡上运行,因为它不支持 CUDA。 尝试使用nvidia-smi.exe 命令而不是任务管理器来查看您的 GPU 是否真正被使用。

【讨论】:

以上是关于如何使副本在 nvidia 显卡而不是英特尔集成显卡上运行的主要内容,如果未能解决你的问题,请参考以下文章

dell3421如何在bios里设置显卡将集成显卡改为独立显卡

英特尔 hd graphics 520是啥显卡

HD610显卡性能怎么样 HD610相当于啥显卡

Intel(R) HD Graphics要安装啥显卡驱动

显卡cuda是啥,是独立显卡还是集成显卡?

系统中未检测到nvidia图形卡