Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

register_host_memory fails for numpy array created frombuffer #459

Open
amishatishpatel opened this issue Sep 10, 2024 · 0 comments
Open
Labels

Comments

@amishatishpatel
Copy link

Bug description

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

Browsing other issues raised, this might relate to issue #450 and PR #451.

  • I see the corresponding unit test was marked xfail in 2a276c4

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.

#!/usr/bin/env python3

import mmap

import numpy as np
import pycuda.autoinit
import pycuda.driver

size = 1024 * 2048
mapping = mmap.mmap(-1, size, flags=mmap.MAP_SHARED)
array = np.frombuffer(mapping, np.uint8)
pycuda.driver.register_host_memory(array)

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

  • 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant