#[cfg(all(feature = "std", feature = "cufile"))] fn main() -> Result<(), Box> { use std::fs; use cudarc::{cufile::safe::Cufile, driver::CudaContext}; const N: usize = 100000; let data: Vec = (0..N).flat_map(|x| (x as f32).to_le_bytes()).collect(); let data_sz = data.len(); let src_file = "/tmp/cufile_test.bin"; fs::write(src_file, &data)?; let cufile = Cufile::new()?; println!("{:?}", cufile.get_properties()?); let file = fs::File::open(src_file)?; let handle = cufile.register(file)?; let ctx = CudaContext::new(0)?; let stream = ctx.default_stream(); let mut buf = stream.alloc_zeros::(data_sz)?; handle.sync_read(0, &mut buf)?; let verify_dst = stream.clone_dtoh(&buf)?; assert_eq!(verify_dst, data); Ok(()) } #[cfg(not(all(feature = "std", feature = "cufile")))] fn main() { println!("This example requires `std` and `cufile` features") }