Commit 7a24bd8
Implements IPC-enabled memory pools for Linux in DeviceMemoryResource (#930)
* Updates DeviceMemoryResource to accept Device objects for the device_id argument.
* Adds IPC support to DeviceMemoryResource. Creates a staticmethod `current` to access the default memory pool.
* Added a missing import statement.
* Restores DeviceMemoryResource default behavior to return the current memory pool. Removes the `current` staticmethod. Adds an option dataclass for constructor options.
* Adjusts docstrings for consistency.
* Adjusts dataclass member defs in *Options classes for Cython.
* Adds __bool__ to the MemoryResource interface.
* Minor docstring update.
* Changes verbiage from "shared" or "shareable" handle to "allocation handle" to better align with the driver API.
* Significantly reworks the tests for IPC-enabled memory pools.
Introduces `IPCAllocationHandle` to manage pool-sharing resources.
Introduces `IPCChannel` to for sharing allocation handles in a
platform-independent way (though currently only Linux is supported).
* Various fixes including: groups cimport statements; removes __bool__ method from MemoryResource; Cythonizes helper classes; disables __init__ for non-API classes; removes abstract factory constructor from IPCChannel; removes the _requires_ipc decorator (checks are now inlined)
* Formatting changes.
* Creates an attributes suite to bundle the DeviceMemoryResource attributes.
* Format changes.
* Test updates. Parameterizes tests (rather than use internal loops). Adds stream synchronization. Eliminates unnecessary clean-up. Removes unnecessary check for CUDA 12 or later.
* Reworks mempool attribute implementation.
* Adds testing for errors when allocating from an imported memory pool.
* Move IPC import/export methods into the Buffer class.
* Updated release notes.
* Reworks DeviceMemoryResourceAttributes to use a descriptor.
* Remove use of deprecated abstractproperty.
Co-authored-by: Keenan Simpson <ksimpson@nvidia.com>1 parent de5c843 commit 7a24bd8
File tree
8 files changed
+792
-50
lines changed- cuda_core
- cuda/core/experimental
- docs/source
- release
- tests
8 files changed
+792
-50
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | | - | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
18 | 24 | | |
19 | 25 | | |
20 | 26 | | |
| |||
0 commit comments