PyCUDA mem_get_ipc_handle给出LogicError:cuIpcGetMemHandle失败:不支持操作

问题描述 投票:0回答:1

我正在尝试执行代码here。我收到以下错误:

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

我在Windows 7 x64环境中使用Python 3.7,CUDA 9.2。 Windows中不支持CUDA IPCMemoryHandle吗?或者,我错过了什么?

cuda ipc pycuda
1个回答
2
投票

记录的是here,只有Linux支持CUDA IPC功能。

但是,驱动程序API(PyCUDA所基于的)docs表示:

IPC功能仅限于支持Linux和Windows操作系统上的统一寻址的设备。 Windows上的IPC功能仅限于TCC模式下的GPU

因此,如果你可以把你的windows GPU放在TCC mode(通过nvidia-smi工具),那么我认为它应该可以工作/得到支持。 GeForce GPU无法进入TCC模式。大多数Titan和Quadro GPU可以置于TCC模式。 Windows上的大多数Tesla GPU应自动处于TCC模式。请注意,将GPU置于TCC模式意味着它无法再承载显示器。

© www.soinside.com 2019 - 2024. All rights reserved.