This article raises an important and challenging workload characterization issue: can we uncover each critical component across the stacks contributing what percentages to any specific bottleneck? The typical critical components include languages, programming frameworks, runtime environments, instruction set architectures (ISA), operating systems (OS), and microarchitecture. Tackling this issue could help propose a systematic methodology to guide the software and hardware co-design and critical component optimizations. We propose a whole-picture workload characterization (WPC) methodology to answer the above issue. In essence, WPC is an iterative ORFE loop consisting of four steps: Observation, Reference, Fusion, and Exploration. WPC observes different level data (observation), fuses and normalizes the performance data (fusion) with respect to the well-designed standard reference workloads suite (reference), and explores the software and hardware co-design space (exploration) to investigate the impacts of critical components across the stacks. We build and open-source the WPC tool. Our evaluations confirm WPC can quantitatively reveal the contributions of the language, framework, runtime environment, ISA, OS, and microarchitecture to the primary pipeline efficiency.
翻译:文章提出了一个重要和具有挑战性的工作量定性问题:我们能否发现整个堆叠中每个关键组成部分对特定瓶颈贡献什么百分比?典型的关键组成部分包括语言、编程框架、运行时间环境、教学设置结构(ISA)、操作系统(OS)和微结构。解决这个问题可有助于提出系统的方法来指导软件和硬件共同设计和关键组成部分优化。我们提出了一个全景工作量定性(WPC)方法来回答上述问题。实质上,WPC是一个迭代的ORFE环流,由四个步骤组成:观察、参考、融合和探索。WPC观测不同层次的数据(观察)、连接和对设计良好的标准参考工作量套件(参考)的性能数据(整合)的正常化,并探索软件和硬件共同设计空间(探索)来调查关键组成部分在整个堆中的影响。我们建立和公开来源WPC工具。我们的评估证实WPC能够量化地揭示语言、框架、运行环境、ISA、OS效率和微结构对主要建筑的贡献。</s>