CGRA4ML: A Framework to Implement Modern Neural Networks for Scientific Edge Computing
<|reference_start|>CGRA4ML: A Framework to Implement Modern Neural Networks for Scientific Edge Computing: Scientific edge computing increasingly relies on hardware-accelerated neural networks to implement complex, near-sensor processing at extremely high throughputs and low latencies. Existing frameworks like HLS4ML are effective for smaller models, but struggle with larger, modern neural networks due to their requirement of spatially implementing the neural network layers and storing all weights in on-chip memory. CGRA4ML is an open-source, modular framework designed to bridge the gap between neural network model complexity and extreme performance requirements. CGRA4ML extends the capabilities of HLS4ML by allowing off-chip data storage and supporting a broader range of neural network architectures, including models like ResNet, PointNet, and transformers. Unlike HLS4ML, CGRA4ML generates SystemVerilog RTL, making it more suitable for targeting ASIC and FPGA design flows. We demonstrate the effectiveness of our framework by implementing and scaling larger models that were previously unattainable with HLS4ML, showcasing its adaptability and efficiency in handling complex computations. CGRA4ML also introduces an extensive verification framework, with a generated runtime firmware that enables its integration into different SoC platforms. CGRA4ML's minimal and modular infrastructure of Python API, SystemVerilog hardware, Tcl toolflows, and C runtime, facilitates easy integration and experimentation, allowing scientists to focus on innovation rather than the intricacies of hardware design and optimization.<|reference_end|>
@article{abarajithan2024cgra4ml:,
    title={CGRA4ML: A Framework to Implement Modern Neural Networks for Scientific
  Edge Computing},
    author={G Abarajithan, Zhenghua Ma, Zepeng Li, Shrideep Koparkar, Ravidu
  Munasinghe, Francesco Restuccia, and Ryan Kastner},
    journal={arXiv preprint arXiv:2408.15561},
    year={2024},
    archivePrefix={arXiv},
    eprint={2408.15561},
    primaryClass={cs.AR cs.AI}
}