#[cfg(feature = "gpu")]
use cudarc::driver::{CudaSlice, PinnedHostSlice};
#[cfg(feature = "gpu")]
pub enum GpuData {
Int32(CudaSlice<i32>),
Int64(CudaSlice<i64>),
Float64(CudaSlice<f64>),
Raw(CudaSlice<u8>),
PinnedInt32(std::sync::Arc<PinnedHostSlice<i32>>),
}
#[cfg(feature = "gpu")]
impl GpuData {
pub fn len(&self) -> usize {
match self {
GpuData::Int32(s) => s.len(),
GpuData::Int64(s) => s.len(),
GpuData::Float64(s) => s.len(),
GpuData::Raw(s) => s.len(),
GpuData::PinnedInt32(v) => v.len(),
}
}
}