一句话:首个面向CAM存内加速器的编译框架,可从TorchScript生成代码并探索配置。
机器学习与数据分析应用日益受限于传统冯·诺依曼架构的高延迟和高能耗。基于内容可寻址存储器(CAM)的存内/近存系统能高效支持KNN、HDC、推荐系统和单样本学习等搜索型操作,但目前多由手工设计,且只能用低层代码编程,仅硬件专家可用。本文提出C4CAM,首个面向CAM加速器的编译器框架,可从高层TorchScript代码快速探索CAM配置并生成代码。它采用分层抽象逐步降低程序,使变换在最适合的抽象层进行;并考虑不同CAM类型与技术的延迟和功耗差异,分析系统级性能与能耗,辅助设计者为给定应用选择合适设计。
Machine learning and data analytics applications increasingly suffer from the high latency and energy consumption of conventional von Neumann architectures. Recently, several in-memory and near-memory systems have been proposed to overcome this von Neumann bottleneck. Platforms based on content-addressable memories (CAMs) are particularly interesting due to their efficient support for the search-based operations that form the foundation for many applications, including K-nearest neighbors (KNN), high-dimensional computing (HDC), recommender systems, and one-shot learning among others. Today, these platforms are designed by hand and can only be programmed with low-level code, accessible only to hardware experts. In this paper, we introduce C4CAM, the first compiler framework to quickly explore CAM configurations and seamlessly generate code from high-level Torch-Script code. C4CAM employs a hierarchy of abstractions that progressively lowers programs, allowing code transformations at the most suitable abstraction level. Depending on the type and technology, CAM arrays exhibit varying latencies and power profiles. Our framework allows analyzing the impact of such differences in terms of system-level performance and energy consumption, and thus supports designers in selecting appropriate designs for a given application.
DOI 原文 · arXiv · PDF(开放获取) · DBLP
@inproceedings{abs-2309-06418,
title = {C4CAM: A Compiler for CAM-based In-memory Accelerators},
author = {Hamid Farzaneh and Joao Paulo Cardoso De Lima and Mengyuan Li and Asif Ali Khan and Xiaobo Sharon Hu and Jeronimo Castrillon},
booktitle = {ASPLOS},
year = {2024},
doi = {10.1145/3620666.3651386}
}