01_allocate/01-allocate.rs
1use cudarc::driver::{CudaContext, CudaSlice, DriverError};
2
3fn main() -> Result<(), DriverError> {
4 let ctx = CudaContext::new(0)?;
5 let stream = ctx.default_stream();
6
7 // unsafe initialization of unset memory
8 let _: CudaSlice<f32> = unsafe { stream.alloc::<f32>(10) }?;
9
10 // this will have memory initialized as 0
11 let _: CudaSlice<f64> = stream.alloc_zeros::<f64>(10)?;
12
13 // initialize with slices!
14 let _: CudaSlice<usize> = stream.clone_htod(&[0; 10])?;
15 let _: CudaSlice<u32> = stream.clone_htod(&[1, 2, 3])?;
16
17 Ok(())
18}