From 5182d8b991c63abada5f27dc849f22efa211bf7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Andr=C3=A9s=20Margffoy=20Tuay?= Date: Tue, 21 Oct 2025 22:01:23 -0500 Subject: [PATCH] Add CUDA IPC functions --- crates/cuda_std/src/rt/driver_types_sys.rs | 5 +++++ crates/cuda_std/src/rt/sys.rs | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/crates/cuda_std/src/rt/driver_types_sys.rs b/crates/cuda_std/src/rt/driver_types_sys.rs index b610dd39..ab7134b8 100644 --- a/crates/cuda_std/src/rt/driver_types_sys.rs +++ b/crates/cuda_std/src/rt/driver_types_sys.rs @@ -387,3 +387,8 @@ pub struct CUevent_st { _unused: [u8; 0], } pub type cudaEvent_t = *mut CUevent_st; + +#[repr(C)] +pub struct cudaIpcMemHandle_t { + pub reserved: [u8; 64], +} diff --git a/crates/cuda_std/src/rt/sys.rs b/crates/cuda_std/src/rt/sys.rs index 5a0bfc4e..32e9ca13 100644 --- a/crates/cuda_std/src/rt/sys.rs +++ b/crates/cuda_std/src/rt/sys.rs @@ -51,4 +51,8 @@ extern "C" { shared_mem_size: c_uint, ) -> *mut c_void; pub fn cudaLaunchDeviceV2(parameter_buffer: *mut c_void, stream: cudaStream_t) -> cudaError_t; + + pub fn cudaIpcGetMemHandle(handle: *mut cudaIpcMemHandle_t, dev_ptr: *mut c_void) -> cudaError_t; + pub fn cudaIpcOpenMemHandle(dev_ptr: *mut *mut c_void, handle: cudaIpcMemHandle_t, flags: u32) -> cudaError_t; + pub fn cudaIpcCloseMemHandle(dev_ptr: *mut c_void) -> cudaError_t; }