The ONNC Compiler is an advanced suite of C++ libraries and tools designed to enhance the development of compilers for deep learning accelerators (DLAs). Targeting diverse system-on-chip (SoC) architectures, from single-core systems to complex heterogeneous setups, it transforms neural networks into machine instructions for various processing elements. This versatility allows for seamless integration across different SoC architectures with varied memory and bus configurations.
Supported by major deep learning frameworks like PyTorch and TensorFlow, the ONNC Compiler provides significant flexibility in handling multiple machine instruction streams concurrently. Utilizing both single and multiple backend modes, it caters to a broad spectrum of IC designs. The comprehensive compiler flow, divided into frontend, middle-end, and backend stages, ensures optimal performance while minimizing the memory footprint through strategic data bandwidth and resource scheduling.
Enhancing AI SoCs with a robust hardware/software co-optimization approach, the ONNC Compiler employs advanced strategies like software pipelining and DMA allocation. It effectively manages complex memory hierarchies and bus systems, ensuring efficient data movement and reducing overhead. This results in substantial RAM savings and higher processing efficacy in AI-centric systems.