Heterogeneous-ISA processor designs have attracted considerable research interest. However, unlike their homogeneous-ISA counterparts, explicit software support for bridging ISA heterogeneity is required. The lack of a compilation toolchain ready to support heterogeneous-ISA targets has been a major factor hindering research in this exciting emerging area. For any such compiler, "getting right" the mechanics involved in state transformation upon migration and doing this efficiently is of critical importance. In particular, any runtime conversion of the current program stack from one architecture to another would be prohibitively expensive. In this paper, we design and develop Unifico, a new multi-ISA compiler that generates binaries that maintain the same stack layout during their execution on either architecture. Unifico avoids the need for runtime stack transformation, thus eliminating overheads associated with ISA migration. Additional responsibilities of the Unifico compiler backend include maintenance of a uniform ABI and virtual address space across ISAs. Unifico is implemented using the LLVM compiler infrastructure, and we are currently targeting the x86-64 and ARMv8 ISAs. We have evaluated Unifico across a range of compute-intensive NAS benchmarks and show its minimal impact on overall execution time, where less than 6% (10%) overhead is introduced on average for high-end (low-end) processors. We also analyze the performance impact of Unifico's key design features and demonstrate that they can be further optimized to mitigate this impact. When compared against the state-of-the-art Popcorn compiler, Unifico reduces binary size overhead from ~200% to ~10%, whilst eliminating the stack transformation overhead during ISA migration.


翻译:异构指令集架构处理器设计已引起广泛的研究关注。然而,与同构ISA设计不同,此类系统需要显式的软件支持以弥合ISA异构性。缺乏可直接支持异构ISA目标的编译工具链,一直是阻碍这一新兴领域研究的主要因素。对于任何此类编译器而言,正确实现迁移时的状态转换机制并保证其高效性至关重要。特别是,若在运行时将当前程序栈从一个架构转换至另一架构,其开销将极其高昂。本文设计并实现了Unifico——一种新型多ISA编译器,其生成的二进制文件在执行期间于任一架构上均保持相同的栈布局。Unifico避免了运行时栈转换的需求,从而消除了ISA迁移相关的开销。Unifico编译器后端的额外职责包括维护跨ISA的统一应用二进制接口与虚拟地址空间。Unifico基于LLVM编译器基础设施实现,目前主要面向x86-64与ARMv8两种ISA。我们通过一系列计算密集型NAS基准测试对Unifico进行评估,结果表明其对整体执行时间的影响极小:在高端(低端)处理器上平均引入的开销低于6%(10%)。我们还分析了Unifico关键设计特性对性能的影响,并论证了可通过进一步优化来缓解这种影响。与当前最先进的Popcorn编译器相比,Unifico将二进制文件大小开销从约200%降低至约10%,同时彻底消除了ISA迁移过程中的栈转换开销。

0
下载
关闭预览

相关内容

MIMIC-IT:多模态上下文指令调优
专知会员服务
39+阅读 · 2023年6月11日
Python图像处理,366页pdf,Image Operators Image Processing in Python
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
4+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
3+阅读 · 2015年12月31日
VIP会员
相关基金
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
4+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
3+阅读 · 2015年12月31日
Top
微信扫码咨询专知VIP会员