как заставить cupy работать на графике nvidia вместо встроенной графики Intel

я пытаюсь запустить свой код на моем GTX970m, но вместо этого он работает на моей интегрированной графике Intel

я пытался

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

так как 0 моя графика Intel, но я получил

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

мой компьютер работает под управлением Windows 10 64bit, а на графике Intel мой код выполняется отлично (и медленно)

вот что делает мой код: у меня есть матрица размером 1000 на 1000, называемая 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:

введите здесь описание изображения


person Edo Mor    schedule 18.08.2019    source источник
comment
у тебя ноут оптимус. Вам может потребоваться задайте профиль optimus, чтобы графический процессор NVIDIA был активен во время сеанса Python.   -  person Robert Crovella    schedule 19.08.2019


Ответы (2)


Возможно, вам потребуется сначала установить переменную CUDA_VISIBLE_DEVICES:

Как выбрать, какой графический процессор запускать задание включено?

Надеюсь, ответ на этот вопрос поможет.

person Spiderbro    schedule 18.08.2019
comment
Я попытался установить 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: устройство с поддержкой CUDA не обнаружено - person Edo Mor; 18.08.2019

CuPy не будет работать на встроенной графике Intel, поскольку она не поддерживает CUDA. Попробуйте использовать команду nvidia-smi.exe вместо диспетчера задач, чтобы увидеть, действительно ли используется ваш графический процессор.

person kmaehashi    schedule 19.08.2019