#![cfg_attr(not(feature = "std"), no_std)]
#![warn(missing_docs)]
#![cfg_attr(docsrs, feature(doc_cfg))]
#[macro_use]
extern crate derive_new;
extern crate alloc;
pub mod id;
pub mod tensor;
pub use tensor::*;
pub mod data;
pub use data::*;
pub mod distribution;
pub use distribution::*;
pub mod element;
pub use element::*;
mod device_settings;
pub use device_settings::*;
pub mod runtime_kind;
pub use runtime_kind::*;
pub mod distributed;
pub mod ops;
pub use ops::*;
pub mod config;
pub use cubecl_zspace::errors::{self, *};
#[cfg(feature = "network")]
pub mod network;
#[derive(Clone, Debug, Hash, Eq, PartialEq)]
pub struct CommunicationId {
pub id: u64,
}
impl From<alloc::vec::Vec<cubecl_common::device::DeviceId>> for CommunicationId {
fn from(mut value: alloc::vec::Vec<cubecl_common::device::DeviceId>) -> Self {
use core::hash::{Hash, Hasher};
value.sort();
let mut hasher = ahash::AHasher::default();
value.hash(&mut hasher);
CommunicationId {
id: hasher.finish(),
}
}
}
pub use cubecl_common::bytes::*;
pub use cubecl_common::device_handle::DeviceHandle;
pub use cubecl_common::*;
pub use half::{bf16, f16};
pub use cubecl_common::flex32;