Fork is All You Need in Heterogeneous Systems
CoRR(2024)
Abstract
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.
MoreTranslated text
AI Read Science
Must-Reading Tree
Example
Generate MRT to find the research sequence of this paper
Chat Paper
Summary is being generated by the instructions you defined