DAC 2025
CIMFlow:面向數(shù)字存內(nèi)計算架構(gòu)的集成式設(shè)計與評估框架
An Integrated Framework for Systematic Design and Evaluation of Digital CIM Architectures


隨著深度神經(jīng)網(wǎng)絡(luò)(DNN)在各領(lǐng)域的廣泛應(yīng)用,傳統(tǒng)馮·諾依曼架構(gòu)正面臨前所未有的挑戰(zhàn):"內(nèi)存墻"(Memory Wall)問題日益嚴(yán)峻。在傳統(tǒng)DNN加速器中,計算單元與存儲單元相互分離,大量數(shù)據(jù)需要在兩者之間頻繁搬運。這不僅消耗了巨大的能量,更成為制約AI計算性能的關(guān)鍵瓶頸。

在這一背景下,存算一體(Compute-in-Memory, CIM)技術(shù)應(yīng)運而生,通過將計算邏輯直接嵌入存儲陣列,實現(xiàn)數(shù)據(jù)的"原地計算",從根本上消除數(shù)據(jù)搬運瓶頸,被視為下一代AI加速器的重要技術(shù)路線。
CIM技術(shù)根據(jù)計算方式可分為模擬CIM和數(shù)字CIM兩大技術(shù)路線:

模擬CIM通過電流/電壓累加實現(xiàn)乘累加(MAC)運算,具有較高的能效和面積效率,但受限于ADC/DAC轉(zhuǎn)換開銷和模擬計算的精度問題。
數(shù)字CIM則將數(shù)字邏輯單元嵌入SRAM陣列,具備以下顯著優(yōu)勢:
· 計算精度高 —— 避免模擬計算的非理想性問題
· 魯棒性強 —— 數(shù)字電路的固有優(yōu)勢
· 并行度高 —— 支持整個存儲陣列的同時激活
然而,數(shù)字CIM的發(fā)展面臨一個關(guān)鍵挑戰(zhàn):SRAM的存儲密度限制導(dǎo)致片上容量不足,難以容納現(xiàn)代大規(guī)模DNN模型的全部權(quán)重,這對數(shù)據(jù)流管理和編譯優(yōu)化提出了更高要求。
當(dāng)前,數(shù)字CIM的研發(fā)和優(yōu)化面臨顯著的工具鏈缺口。現(xiàn)有的模擬仿真和編譯框架主要存在以下問題:

1. 集成度不足 —— ISA定義、編譯器、模擬器各自為政,缺乏端到端的協(xié)同優(yōu)化支持
2. 靈活性受限 —— 現(xiàn)有工具往往基于固定的架構(gòu)假設(shè),難以適應(yīng)數(shù)字CIM快速演進(jìn)的設(shè)計空間
3. 針對性不足 —— 缺乏針對數(shù)字CIM容量限制的專門優(yōu)化策略
這些問題嚴(yán)重制約了數(shù)字CIM架構(gòu)的設(shè)計空間探索和快速原型驗證。
針對上述挑戰(zhàn),我們提出了CIMFlow——一個面向數(shù)字CIM架構(gòu)的集成式設(shè)計與評估框架。CIMFlow的設(shè)計遵循兩大核心理念:
· 集成式(Integration) —— 實現(xiàn)從DNN模型到性能評估的無縫銜接
· 可擴展(Extensibility) —— 通過層次化抽象與指令設(shè)計支持靈活的軟硬件配置

CIMFlow由以下三大核心組件構(gòu)成:
CIMFlow ISA采用三層硬件抽象層次,從芯片級(Chip-level)、核心級(Core-level)到單元級(Unit-level),為編譯器和模擬器設(shè)計提供了統(tǒng)一的接口。

在最頂層的芯片級抽象包含了多核互連的拓?fù)浣Y(jié)構(gòu)、片上網(wǎng)絡(luò)(NoC)的通信參數(shù)以及全局存儲的配置方式。核心級抽象則聚焦于單個處理核心的內(nèi)部結(jié)構(gòu),每個核擁有獨立的指令流。在最底層的單元級抽象則包含了CIM宏單元(Macro)內(nèi)部的計算粒度與執(zhí)行細(xì)節(jié),直至存儲單元(Element)級別的位寬和操作特性。
指令集采用32位的指令編碼設(shè)計,包含計算、通信與控制三大類型的指令。每條指令包含6位操作碼和多個5位操作數(shù)字段,并提供自定義指令擴展模板,便于研究者根據(jù)需求引入新的操作類型。
三類指令詳情:計算 · 通信 · 控制流



CIMFlow編譯器基于MLIR框架構(gòu)建,主要包含以下兩級優(yōu)化策略:

CIMFlow模擬器基于SystemC實現(xiàn),提供從單核執(zhí)行到全芯片協(xié)調(diào)的多層次周期精確仿真。

在核心級別,每條指令的執(zhí)行遵循取指、譯碼、執(zhí)行的三級流水線模型。執(zhí)行階段為不同類型的計算單元實現(xiàn)了細(xì)粒度的流水建模,以支持指令級并行。模擬器通過位圖記分板機制精確追蹤指令沖突和資源占用,確保對計算與數(shù)據(jù)搬運模式的準(zhǔn)確建模。在芯片級別,模擬器管理多個核心通過片上網(wǎng)絡(luò)進(jìn)行的并行執(zhí)行和數(shù)據(jù)通信,輸出涵蓋能耗、延遲、硬件利用率等多維度的詳細(xì)性能報告。
模擬器的另一大特色是高度的可配置性。研究者可以通過配置文件靈活指定核心數(shù)量、存儲容量、NoC帶寬等架構(gòu)參數(shù),無需修改代碼即可快速進(jìn)行設(shè)計空間探索。
我們在ResNet18、VGG19、MobileNetV2、EfficientNetB0等代表性模型上進(jìn)行了全面評估:


2026年1月19日,我們在第31屆亞太設(shè)計自動化會議(ASP-DAC 2026)上與計算所陳曉明研究員與清華大學(xué)朱振華博士成功舉辦了題為"Design Methodologies and Toolchains for Compute-in-Memory: From Architectures to Systems"的Tutorial。

本次Tutorial歷時50分鐘,系統(tǒng)介紹了存算一體技術(shù)背景、CIMFlow框架設(shè)計理念、三大核心組件的技術(shù)細(xì)節(jié),以及性能評估方法與設(shè)計洞察。Tutorial的一大亮點是現(xiàn)場Hands-on Demo環(huán)節(jié),與會者通過預(yù)先準(zhǔn)備的Docker環(huán)境進(jìn)行了動手實踐,親身體驗了從DNN模型編譯到周期精確仿真的完整流程。
Tutorial吸引了來自學(xué)術(shù)界和工業(yè)界的眾多參會者,現(xiàn)場討論熱烈。感謝所有參與者的支持!CIMFlow將持續(xù)迭代更新,我們期待與更多同仁共同推動數(shù)字存算一體技術(shù)的發(fā)展。
CIMFlow代表了我們在數(shù)字存算一體架構(gòu)系統(tǒng)化設(shè)計方向的階段性成果。通過集成式的設(shè)計理念和靈活的可擴展架構(gòu),CIMFlow加速了數(shù)字CIM架構(gòu)的設(shè)計空間探索,降低了從算法到硬件的驗證門檻,同時推動了存內(nèi)計算領(lǐng)域軟硬件協(xié)同優(yōu)化方法學(xué)研究的進(jìn)一步發(fā)展。
CIMFlow工具鏈目前已在GitHub平臺開源。我們相信,CIMFlow將為下一代AI加速器的研發(fā)提供有力支撐,也期待更多研究者加入我們,共同完善這一開源工具鏈。
AUTHOR
齊英杰
北京航空航天大學(xué)計算機學(xué)院 在讀博士
ACT研究所 智能計算課題組
研究方向:存內(nèi)計算架構(gòu)、軟硬件協(xié)同設(shè)計、深度學(xué)習(xí)加速
yingjieqi@buaa.edu.cn
LINKS
DAC'25 Paperhttps://dl.acm.org/doi/10.1109/DAC63849.2025.11133270
Arxiv Preprinthttps://arxiv.org/abs/2505.01107
Project Homepagehttps://www.cimflow.org
GitHub Repositoryhttps://github.com/BUAA-CI-LAB/CIMFlow
SCAN TO VISIT

Project Homepage
www.cimflow.org

GitHub Repository
Star us on GitHub!
CITATION
@inproceedings{qi2025cimflow,
title={CIMFlow: An Integrated Framework for Systematic Design and Evaluation of Digital CIM Architectures},
author={Qi, Yingjie and Yang, Jianlei and Wang, Yiou and Wang, Yikun and Wang, Dayu and Tang, Ling and Duan, Cenlin and He, Xiaolin and Zhao, Weisheng},
booktitle={2025 62nd ACM/IEEE Design Automation Conference (DAC)},
pages={1--7},
year={2025},
doi={10.1109/DAC63849.2025.11133270}
}
作者 / 齊英杰
編輯 / 齊英杰
查看更多內(nèi)容,請關(guān)注