PyCUDA mem_get_ipc_handle выдает LogicError: ошибка cuIpcGetMemHandle: операция не поддерживается - PullRequest
0 голосов
/ 01 сентября 2018

Я пытаюсь выполнить код здесь . Я получаю следующую ошибку:

orig:  [0.36975162 0.08511397 0.16306844 0.4015488  0.25104857 0.30606773 0.24524205 0.13792656]
Process Process-1:
Traceback (most recent call last):
  File "C:\Program Files\Python27\lib\multiprocessing\process.py", line 267, in _bootstrap
    self.run()
  File "C:\Program Files\Python27\lib\multiprocessing\process.py", line 114, in run
    self._target(*self._args, **self._kwargs)
  File "C:\Users\My\Desktop\test_codes\pycuda4.py", line 28, in func1
    h = drv.mem_get_ipc_handle(x_gpu.ptr)
LogicError: cuIpcGetMemHandle failed: operation not supported

Я использую Python 3.7, CUDA 9.2 в среде Windows 7 x64. CUDA IPCMemoryHandle не поддерживается в Windows? Или я что-то упустил?

1 Ответ

0 голосов
/ 01 сентября 2018

Что задокументировано здесь заключается в том, что функциональность CUDA IPC поддерживается только в Linux.

Однако API драйвера (на котором основан PyCUDA) docs указывают:

Функциональность IPC ограничена устройствами с поддержкой унифицированной адресации в операционных системах Linux и Windows. Функциональность IPC в Windows ограничена графическими процессорами в режиме TCC

Поэтому, если вы можете перевести свой графический процессор Windows в режим TCC (с помощью инструмента nvidia-smi), то я думаю, что он, вероятно, должен работать / поддерживаться Графические процессоры GeForce не могут быть переведены в режим TCC. Большинство графических процессоров Titan и Quadro могут быть переведены в режим TCC. Большинство графических процессоров Tesla в Windows должны автоматически находиться в режиме TCC. Обратите внимание, что перевод графического процессора в режим TCC означает, что он больше не может размещать дисплей.

...