#[cfg(feature = "accelerate")] extern crate accelerate_src; #[cfg(feature = "mkl")] extern crate intel_mkl_src; use anyhow::Result; use candle_core::{Device, Tensor}; fn main() -> Result<()> { let device = Device::new_cuda(0)?; let in_t = Tensor::rand(-1f32, 1f32, (1, 3, 12, 7), &device)?; let k_t = Tensor::rand(-1f32, 1f32, (6, 3, 1, 1), &device)?; let out_t = in_t.conv2d(&k_t, 0, 1, 1, 1)?; println!("{out_t}"); let in_t = in_t.to_device(&Device::Cpu)?; let k_t = k_t.to_device(&Device::Cpu)?; let out_t2 = in_t.conv2d(&k_t, 0, 1, 1, 1)?; let diff = (out_t.to_device(&Device::Cpu)? - out_t2)? .sqr()? .sum_all()?; println!("{diff}"); let t = Tensor::randn(0f32, 1f32, (2, 4, 96, 96), &device)?; let w = Tensor::randn(0f32, 1f32, (320, 4, 3, 3), &device)?; let res = t.conv2d(&w, 1, 1, 1, 1)?; println!("{res:?}"); Ok(()) }