inducer / inducer/pycuda

`register_host_memory` fails for numpy array created `frombuffer`

Open
#459 2 comments 1 reaction 0 assignees View on GitHub
bug
Dominant language
Python
Stars
2.1k
Forks
298
Avg merge
4m
Merged PRs (30d)
1

Description

### Bug description
Cannot `pycuda.driver.register_host_memory` using numpy array that was created `frombuffer`.

Error thrown
```bash
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
pycuda.driver.register_host_memory(array)
SystemError: returned a result with an exception set
```

Browsing other issues raised, this might relate to issue https://github.com/inducer/pycuda/issues/450 and PR #451.
* I see the corresponding unit test was marked `xfail` in https://github.com/inducer/pycuda/commit/2a276c4e3373d568363d71460886280d19b260d5

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.

```python
#!/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.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.