作者:包云岗老师
包云岗老师是计算机体系结构方向的大牛,推动了体系结构方面的开源事业! 欢迎对本栏目感兴趣的人学习"一生一芯"~
学习体会:
已有的软硬件生态系统和开发成本制约了对新结构的探索。但目前仍在几种路线上做尝试~
通过新结构和新算法解决低功耗
通用结构和专用结构
突破指令集的禁锢
包老师在本文提出了新的目标导向: 以面向对象体系结构(OOA)设计范式为基础的处理器敏捷设计方法. 仍存在较多尚未解决的挑战 和关键问题,主要包括:
1)如何实现处理器功能与结构的细粒度解耦?
2)如何实现面向对象的处理器设计高层抽象?
3)如何在设计自动化工具中深度融合体系结构特征?
PS: (time-to-market)需求场景变了, 需求也要跟着变化. 到24年年底, 高校研究敏捷开发已经成为大趋势, 站在当下去看看之前的思路和已经解决的问题, 对于后续科研也会带来帮助
PS: 通过设计范式、语言与EDA工具,实现CPU和XPU体系结构细粒度对象的易分解、易组合和易扩展, 未来更加像是堆叠积木了
PS: 这篇文章对于XPU敏捷开发、HLS→RTL、敏捷EDA工具链 探讨,值得多次研读!
摘录自包云岗老师文章:
摘录自: 图3 面向对象体系结构(OOA)设计方法技术要点题
新兴专用处理器 (XPU) 需求多样化,设计周期长,无法满足快速定制需求。
借鉴面向对象软件设计思想,以敏捷度 (开发周期、开发成本和复杂度)为新的导向指标,在兼顾性能和可靠性的前提下,提出以面向对象体系结构(OOA)设计范式为基础的处理器敏捷设计方法.
PS: 原有的基于多步骤反复迭代的EDA技术进行性能-面积-功耗综合优化,导致极高的研发成本、周期及技术门槛.
挑战问题:
-
如何实现处理器功能与结构的细粒度解耦?
-
需要确定合适的对象分解粒度,兼顾实现复杂度和组合后的性能影响。P9
-
需要探索适应各种不同处理器流水线的通用设计模板。P9
-
需要根据设计目标和性能及面积约束,有效限制架构组合的搜索边界。P9
-
需要抽取关键体系结构参数及行为,形成面向对象的敏捷形式化验证方法。P9
-
-
如何实现面向对象的处理器设计高层抽象?
-
现有硬件描述语言无法兼顾处理器开发效率与硬件性能。P9
-
缺乏统一的中间表示形式,不便于硬件设计的复用与优化。P9
-
不同层次和行为的硬件描述语言的编译流程难以兼容,且不易调试。P9
-
-
如何在设计自动化工具中深度融合体系结构特征?
-
体系结构设计与物理设计无法有效协同,导致迭代周期长,收敛难度大。P5
-
缺乏高效的物理设计搜索寻优方法,难以融合处理器体系结构信息。
-
需要利用人工智能方法,实现体系结构特征与EDA工具深度融合。P10
-
PS: XPU敏捷开发、HLS→RTL、敏捷EDA工具链 目前都是研究的热点, 后续继续观察
XPU敏捷开发:
理想的XPU敏捷设计要满足至少3个方面的特征:1)大幅度降低领域专用XPU设计门槛; 2)大幅度提高XPU的设计效率, 缩短XPU的设计周期; 3)要保证XPU的设计质量
针对领域应用的这 些特点,已经有很多专用的XPU设计工作,总体上可以分为3种类型:
1)针对领域应用编程框架的设计方法.其核心思想是重用已有的软件编程框架来进行硬件加速器 设计,来保证硬件加速器能够无缝地支持领域应用.
2)基于可重构硬件模板的加速器设计方法.其 核心思想是将应用变换成硬件模板支持的模式,然后重用或者定制可重构加速器模板,实现领域应用的加速.典型的硬件模板有用于矩阵运算或者张量运算的二维脉动阵列.
3)基于领域专用语言(DSL)的自动化设计方法.本质上类似于高层次综合(HLS),但是由于应用场景往 往更加局限于领域应用,因此可以将领域知识一定程 度地显式体现在DSL中,从而使得DSL的描述能够编译成更加高效的硬件.