Skip to main content

13_copy_multi_gpu/
13-copy-multi-gpu.rs

1use cudarc::driver::{CudaContext, CudaSlice, DriverError};
2
3fn main() -> Result<(), DriverError> {
4    let size = 10;
5
6    let ctx1 = CudaContext::new(0)?;
7    let stream1 = ctx1.default_stream();
8    let a: CudaSlice<f64> = stream1.alloc_zeros::<f64>(size)?;
9
10    let ctx2 = CudaContext::new(1)?;
11    let stream2 = ctx2.default_stream();
12
13    let b = stream2.clone_dtod(&a)?;
14
15    stream2.clone_dtoh(&b)?;
16    stream1.clone_dtoh(&a)?;
17
18    Ok(())
19}