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}