Skip to main content

Crate tenferro_gpu

Crate tenferro_gpu 

Source
Expand description

GPU backend implementations for tenferro tensors.

ยงExamples

#[cfg(feature = "cuda")]
{
    use tenferro_gpu::{download_tensor, gpu_available, upload_tensor, CudaBackend};
    use tenferro_tensor::{Tensor, TensorElementwise};

    if gpu_available() {
        let mut backend = CudaBackend::new(0).unwrap();
        let a = Tensor::from_vec_col_major(vec![2], vec![1.0_f64, 2.0]);
        let b = Tensor::from_vec_col_major(vec![2], vec![3.0_f64, 4.0]);
        let gpu_a = upload_tensor(backend.runtime(), &a).unwrap();
        let gpu_b = upload_tensor(backend.runtime(), &b).unwrap();
        let gpu_sum = backend.add(&gpu_a, &gpu_b).unwrap();
        let sum = download_tensor(backend.runtime(), &gpu_sum).unwrap();
        assert_eq!(sum.as_slice::<f64>().unwrap(), &[4.0, 6.0]);
    }
}