As computer systems continue to diversify across technologies, architectures, applications, and beyond, the relevant design space has become larger and more complex. Given such trends, design space exploration (DSE) at early stages is critical to ensure agile development towards optimal performance and cost. Industry-grade EDA tools directly take in RTL code and report accurate results, but do not perform DSE. Recent works have attempted to explore the design space via simulation. However, most of these works are domain-specific and constrain the space that users are allowed to explore, offering limited flexibility between technologies, architecture, and applications. Moreover, they often demand high domain expertise to ensure high accuracy. To enable simulation that is agnostic to technology, architecture, and application at any granularity, we introduce Architecture-Graph (Agraph), a graph that unifies the system representation surrounding any arbitrary application, software, architecture, and circuit. Such a unified representation distinguishes Agraph from prior works, which focus on a single stack, allowing users to freely explore the design space across system stacks. To fully unleash the potential of Agraph, we further present Archx, a framework that implements Agraph. Archx is user-friendly in two ways. First, Archx has an easy-to-use programming interface to automatically generate and sweep design points under user constraints, boosting the programmability. Second, Archx adopts scope-based metric retrieval to analyze and understand each design point at any user-preferred hierarchy, enhancing the explainability. We conduct case studies that demonstrate Agraph's generalization across technologies, architecture, and applications with high simulation accuracy. Overall, we argue that Agraph and Archx serve as a foundation to simulate both performance and cost at will.
翻译:随着计算机系统在技术、架构、应用等维度持续多样化,相关的设计空间变得更大且更复杂。在此趋势下,早期设计空间探索对于确保敏捷开发并实现最优性能与成本至关重要。工业级EDA工具可直接接收RTL代码并报告精确结果,但通常不执行设计空间探索。近期研究尝试通过仿真的方式进行设计空间探索,然而这些工作大多局限于特定领域,限制了用户在技术、架构与应用层面可探索的空间,且在跨技术、架构与应用的灵活性方面较为有限。此外,它们通常需要较高的领域专业知识以确保仿真精度。为实现对技术、架构与应用在任意粒度上均透明的仿真,本文提出架构图(Agraph),这是一种能够统一表示任意应用、软件、架构与电路系统的图结构。这种统一的表示方式使Agraph区别于以往聚焦于单一技术栈的工作,允许用户自由地跨系统栈探索设计空间。为充分发挥Agraph的潜力,我们进一步提出了实现Agraph的框架Archx。Archx在两方面具备良好的用户友好性:首先,它提供易于使用的编程接口,可根据用户约束自动生成并遍历设计点,从而提升可编程性;其次,它采用基于作用域的指标检索机制,可在用户指定的任意层级上分析与理解每个设计点,增强了可解释性。我们通过案例研究展示了Agraph在跨技术、架构与应用场景下的泛化能力,并实现了较高的仿真精度。总体而言,我们认为Agraph与Archx为按需仿真性能与成本奠定了重要基础。