pub mod core {
pub use tenferro_tensor_core::{
col_major_strides, DType, DynRank, ErrorKind, HostTensor, HostTensorView, IntoShapeVec,
Rank, Result, ShapeMismatch, ShapeVec, SliceSpec, StrideVec, Tensor, TensorLayout,
TensorRank, TensorRef, TensorScalar, TensorView, ValidationError, ValidationKind,
};
}
pub use tenferro_tensor_core::{
ErrorKind, IntoShapeVec, ShapeMismatch, ShapeVec, SliceSpec, StrideVec, TensorRef,
ValidationError, ValidationKind,
};
pub mod backend;
pub mod cache;
pub mod capability;
pub mod config;
pub mod dispatch;
pub mod error;
pub mod prelude;
pub mod types;
pub mod validate;
pub use backend::{
default_backend_session, BackendCachedDot, BackendRuntimeCache, BackendSession,
BackendSessionHost, ContractionScalar, DotGeneralAccumulation, ElementwiseReadOp,
SessionCachedDot, TensorAnalytic, TensorBackend, TensorBackendOps, TensorBuffer,
TensorDeviceTransfer, TensorDot, TensorElementwise, TensorFusion, TensorIndexing,
TensorReduction, TensorStructural, TensorViewCanonicalization,
};
pub use cache::{CacheStats, RuntimeCacheControl};
pub use capability::{
capability_output_dtype, BackendId, CapabilityAxis, CapabilityQuery, OperationCapability,
SupportLevel, TensorBackendCapability,
};
pub use config::{
CompareDir, DotGeneralConfig, GatherConfig, PadConfig, ScatterConfig, SliceConfig,
};
pub use error::{BoxError, Error, ReinterpretError, Result};
pub use types::{
col_major_strides, AllocationDomainId, AllocationId, BackendStorage, BackendStorageHandle,
CpuDomainId, DType, DeviceAccessError, DeviceAccessRequest, DeviceId, DeviceKind, DynRank,
GpuBackendKind, HostAccessError, HostReadGuard, HostWriteGuard, MemoryKind, Placement,
PreparedDeviceAccess, Rank, SharedTensorAllocationDomain, StorageBuffer, StridedSliceSpec,
Tensor, TensorLayout, TensorRank, TensorRead, TensorScalar, TensorStorageRef,
TensorStorageRefMut, TensorValue, TensorView, TensorViewMut, TensorWrite, TypedTensor,
TypedTensorView, TypedTensorViewMut, TypedTensorViewMutSplit, TypedTensorWrite,
};
mod storage;
#[doc(hidden)]
pub use storage::{
AccessError, AllocationKey, BackendAllocation, ProviderCapabilities, ProviderKind,
ProviderReadMapping, ProviderWriteMapping, RootBoundSpan, RootResourceExtent, RootResourceId,
SpanValidationError,
};
pub use storage::{AllocationGroup, DescriptorSlot, GroupError};
pub(crate) fn core_dtype(dtype: DType) -> tenferro_tensor_core::DType {
match dtype {
DType::F32 => tenferro_tensor_core::DType::F32,
DType::F64 => tenferro_tensor_core::DType::F64,
DType::I32 => tenferro_tensor_core::DType::I32,
DType::I64 => tenferro_tensor_core::DType::I64,
DType::Bool => tenferro_tensor_core::DType::Bool,
DType::C32 => tenferro_tensor_core::DType::C32,
DType::C64 => tenferro_tensor_core::DType::C64,
}
}
#[cfg(test)]
mod tests;