English

Programming Bare-Metal Accelerators with Heterogeneous Threading Models: A Case Study of Matrix-3000

Programming Languages 2022-10-25 v1 Distributed, Parallel, and Cluster Computing Performance

Abstract

As the hardware industry moves towards using specialized heterogeneous many-cores to avoid the effects of the power wall, software developers are finding it hard to deal with the complexity of these systems. This article shares our experience when developing a programming model and its supporting compiler and libraries for Matrix-3000, which is designed for next-generation exascale supercomputers but has a complex memory hierarchy and processor organization. To assist its software development, we developed a software stack from scratch that includes a low-level programming interface and a high-level OpenCL compiler. Our low-level programming model offers native programming support for using the bare-metal accelerators of Matrix-3000, while the high-level model allows programmers to use the OpenCL programming standard. We detail our design choices and highlight the lessons learned from developing systems software to enable the programming of bare-metal accelerators. Our programming models have been deployed to the production environment of an exascale prototype system.

Keywords

Cite

@article{arxiv.2210.12230,
  title  = {Programming Bare-Metal Accelerators with Heterogeneous Threading Models: A Case Study of Matrix-3000},
  author = {Jianbin Fang and Peng Zhang and Chun Huang and Tao Tang and Kai Lu and Ruibo Wang and Zheng Wang},
  journal= {arXiv preprint arXiv:2210.12230},
  year   = {2022}
}
R2 v1 2026-06-28T04:13:09.947Z