Expand description
§ironaccelerator-core
Backend-agnostic foundation for IronAccelerator — a high-performance, agentic-first driver substrate spanning CUDA, ROCm, Metal, and Qualcomm NPUs. This crate intentionally contains no backend bindings; it defines the trait surface every backend implements plus the vendor-neutral descriptions of the things a driver actually owns: devices, capability bits, memory, streams, events, and kernel launch geometry.
Scope. Nothing above the driver lives here. Workload descriptors, execution-strategy selection, tensor descriptors, quantization schemes, and CPU reference kernels belong to the inference engine layered on top (IronWorks), not to the substrate that talks to the driver.
IronAccelerator prioritises throughput over guard-rails. Where a
traditional safe wrapper would add bounds checks, allocation tracking, or
synchronous teardown, we expose a _unchecked fast path and let the agent
(or library author) opt back into safety.
Re-exports§
pub use backend::Backend;pub use backend::BackendKind;pub use backend::BackendRegistry;pub use capability::Capability;pub use capability::CapabilityFlags;pub use capability::ComputeTier;pub use device::Device;pub use device::DeviceDescriptor;pub use device::DeviceId;pub use device::Vendor;pub use dtype::DType;pub use dtype::NumericClass;pub use error::Error;pub use error::Result;pub use kernel::KernelLaunch;pub use kernel::LaunchDims;pub use memory::Allocation;pub use memory::MemoryKind;pub use memory::MemoryPool;pub use stream::Event;pub use stream::Stream;
Modules§
- backend
Backendis the single trait every accelerator backend implements.- capability
- Coarse capability flags. Backends translate vendor-specific capability tables (CUDA compute capability, ROCm gfx, Metal feature sets, QNN HTP version) into this common space so callers can reason about hardware uniformly without parsing vendor version strings.
- device
- Vendor-neutral device descriptors.
- dtype
- Numeric data types. Mirrors the most common ML / HPC formats so that backend kernels can be selected via dtype dispatch.
- error
- Unified error type. Backend errors are erased to a small enum + opaque code so the hot path never allocates.
- handle
- Opaque handle wrappers for vendor SDK objects.
- kernel
- Kernel launch description shared across backends.
- memory
- Vendor-neutral memory abstractions. Backends provide concrete
AllocationandStreamtypes; this module defines the trait surface and the categories of memory a driver can hand out. - stream
- Streams and events. A stream is the unit of asynchronous submission; every backend has one (CUDA streams, HIP streams, Metal command queues, QNN graph executors).