burn_flex/lib.rs
1#![cfg_attr(not(feature = "std"), no_std)]
2
3//! # burn-flex
4//!
5//! A fast, portable CPU backend for [Burn](https://github.com/tracel-ai/burn).
6//!
7//! ## Features
8//!
9//! - Pure Rust (no C dependencies)
10//! - f16/bf16 support
11//! - SIMD acceleration via macerator (NEON, AVX2/AVX-512/SSE, SIMD128, scalar fallback)
12//! - Zero-copy tensor views
13//! - Thread-safe by design
14//!
15//! ## Usage
16//!
17//! ```ignore
18//! use burn_flex::Flex;
19//! use burn::tensor::Tensor;
20//!
21//! let tensor: Tensor<Flex, 2> = Tensor::from_data([[1.0, 2.0], [3.0, 4.0]], &Default::default());
22//! ```
23
24extern crate alloc;
25
26#[cfg(all(not(target_has_atomic = "ptr"), not(feature = "critical-section")))]
27compile_error!(
28 "This target lacks atomic CAS support. Enable the `critical-section` feature: \
29 burn-flex = { ..., features = [\"critical-section\"] }"
30);
31
32mod backend;
33mod layout;
34mod qtensor;
35mod strided_index;
36mod tensor;
37
38#[doc(hidden)]
39pub mod ops;
40
41#[doc(hidden)]
42pub mod simd;
43
44pub use backend::{Flex, FlexDevice};
45pub use layout::Layout;
46pub use qtensor::FlexQTensor;
47pub use tensor::FlexTensor;