如何使副本在 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 显卡而不是英特尔集成显卡上运行的主要内容,如果未能解决你的问题,请参考以下文章