【发布时间】: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 会话期间处于活动状态。