Fork is All You Need in Heterogeneous Systems
<|reference_start|>Fork is All You Need in Heterogeneous Systems: We present a unified programming model for heterogeneous computing systems. Such systems integrate multiple computing accelerators and memory units to deliver higher performance than CPU-centric systems. Although heterogeneous systems have been adopted by modern workloads such as machine learning, programming remains a critical limiting factor. Conventional heterogeneous programming techniques either impose heavy modifications to the code base or require rewriting the program in a different language. Such programming complexity stems from the lack of a unified abstraction layer for computing and data exchange, which forces each programming model to define its abstractions. However, with the emerging cache-coherent interconnections such as Compute Express Link, we see an opportunity to standardize such architecture heterogeneity and provide a unified programming model. We present CodeFlow, a language runtime system for heterogeneous computing. CodeFlow abstracts architecture computation in programming language runtime and utilizes CXL as a unified data exchange protocol. Workloads written in high-level languages such as C++ and Rust can be compiled to CodeFlow, which schedules different parts of the workload to suitable accelerators without requiring the developer to implement code or call APIs for specific accelerators. CodeFlow reduces programmers' effort in utilizing heterogeneous systems and improves workload performance.<|reference_end|>
@article{wang2024fork,
    title={Fork is All You Need in Heterogeneous Systems},
    author={Zixuan Wang and Jishen Zhao},
    journal={arXiv preprint arXiv:2404.05085},
    year={2024},
    archivePrefix={arXiv},
    eprint={2404.05085},
    primaryClass={cs.ET cs.DC}
}