Cannot pycuda.driver.register_host_memory using numpy array that was created frombuffer.
Error thrown
ValueError: Cannot set the NumPy array 'base' dependency more than once
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/path/to/my_test_file/./test_pycuda.py", line 12, in <module>
pycuda.driver.register_host_memory(array)
SystemError: <Boost.Python.function object at 0x1b80350> returned a result with an exception set
However, this is reproducible with numpy==1.26.2 (not numpy 2.0 or newer).
Steps to reproduce
Executing the following minimum working example with pycuda==2024.1.2 results in the above error.
Note that executing the same minimum working example with pycuda==2023.1 does not throw an error.
I'd like this to be fixed, please. This is quite key in (our) benchmarking of GPU (htod, dtoh) performance,
if/when we do upgrade to the latest pycuda.
Environment
OS: Ubuntu 22.04.4 LTS
CUDA version: 12.5
CUDA driver version: 555.42.06
PyCUDA version: 2024.1.2
Python version: 3.12.5
Additional context
Belated apologies in advance if I've misinterpreted the error/this is already on your radar. Figured I'd
flag it anyway, just to be safe.
Bug description
Cannot
pycuda.driver.register_host_memory
using numpy array that was createdfrombuffer
.Error thrown
Browsing other issues raised, this might relate to issue https://github.com/inducer/pycuda/issues/450 and PR #451.
xfail
in https://github.com/inducer/pycuda/commit/2a276c4e3373d568363d71460886280d19b260d5However, this is reproducible with numpy==1.26.2 (not numpy 2.0 or newer).
Steps to reproduce
Executing the following minimum working example with pycuda==2024.1.2 results in the above error. Note that executing the same minimum working example with pycuda==2023.1 does not throw an error.
Expected behaviour
I'd like this to be fixed, please. This is quite key in (our) benchmarking of GPU (htod, dtoh) performance, if/when we do upgrade to the latest pycuda.
Environment
Additional context Belated apologies in advance if I've misinterpreted the error/this is already on your radar. Figured I'd flag it anyway, just to be safe.