《7-何家泰-Chimera-os2atc.pdf》由会员分享,可在线阅读,更多相关《7-何家泰-Chimera-os2atc.pdf(16页珍藏版)》请在三个皮匠报告上搜索。
1、Chimera:Transparent and High Performance ISAX Chimera:Transparent and High Performance ISAX Heterogeneous Computing via Binary RewritingHeterogeneous Computing via Binary RewritingEuroSys 2026EuroSys 2026基于二进制重写的用户透明、高性能基于二进制重写的用户透明、高性能ISAXISAX异构计算系统异构计算系统中国科学院软件研究所中国科学院软件研究所智能软件研究中心智能软件研究中心何家泰,潘庆霖,
2、赵瑞霖,齐冀何家泰,潘庆霖,赵瑞霖,齐冀*,梁凯文,徐家豪,李志远,王跃翔,于佳耕,武延军,梁凯文,徐家豪,李志远,王跃翔,于佳耕,武延军硬件趋势:硬件趋势:RISC-VRISC-V定制化扩展、异构硬件逐渐增加定制化扩展、异构硬件逐渐增加 RISC-V开源、模块化的设计理念使得其扩展指令类型激增 例如,矩阵加速扩展Matrix 大模型、图等特殊计算需求使得端侧异构硬件进入人们视野 例如,K230开发板支持 RVV+RVI 异构 CPU软件趋势:软件开始针对特定硬件、特定场景定制化软件趋势:软件开始针对特定硬件、特定场景定制化问题:问题:当不同核心支持不同的扩展指令集时,包含扩展指令的任务只能运
3、行在扩展核心上,可能会造成其他核心空闲;核心空闲;如何保证程序的透明迁移以充分发挥硬件算力?如何保证程序的透明迁移以充分发挥硬件算力?面向包含不同扩展的RISC-V异构硬件ISAXISAX(ISA+eXtensionISA+eXtension)异构:异构:处理器共享基础指令集,但可以各自支持不同的扩展指令,这类异构有着更好的能耗和性能的均衡重叠指令集重叠指令集基于基于编译编译的的ISAX ISAX 异构异构计算系统计算系统 从源码将二进制程序编译为多个版本 不同的核心上运行不同版本的程序 迁移时切换到目标核心的程序版本 实际应用 支持程序的透明调度 需要程序源码对ISA扩展进行适配 需要针对每
4、个不同的异构硬件重新编译程序 大部分软件以二进制形式分发 开发者预编译不可行:大量未知目标指令集 用户编译不可行:对于大型程序,编译时间达到数小时针对RISC-V的ISA扩展设计基础设施,方便扩展指令开发Memcached对不同扩展的适配,在源码上适配所有扩展会导致程序不可维护核心观点:基于二进制重写的二进制核心观点:基于二进制重写的二进制翻译适用于用户透明的高性能翻译适用于用户透明的高性能ISAXISAX异构计算系统异构计算系统 观察观察 2 2:扩展指令占比较少。可通过二进制重写翻译少量指令,简化了二进制重写设计不同程序的向量扩展指令占比,扩展指令仅全部指令的10%左右 观察观察 1 1:
5、共享的基础指令简化了二进制翻译。不需要考虑不同的系统调用,也不需要考虑内存同步和数据布局转换(在传统异构计算系统中造成巨大的性能开销)重写流程(以翻译一个包含扩展指令的二进制文件为例)反汇编:将原二进制反汇编,识别要翻译的扩展指令翻译:将扩展指令翻译为基础指令重写:使用二进制重写技术对扩展指令进行替换现有二进制重写方式均无法同时满足正确性和高性能!ISAX异构计算系统对二进制重写的两个要求正确性:重写后的程序语义应该和重写前程序语义一致高性能:重写后的程序相比原生编译的性能开销低 两种二进制重写方式二进制重建二进制补丁二进制重建和二进制补丁 原地替换翻译后的代码,会偏移后续指令,破坏原有控制流
6、,需要进行控制流恢复(如图)受限于二进制分析技术,控制流恢复无法保证正确性,存在潜在的错误 类型一:静态重建高性能受限于二进制分析技术,不保证正确性 类型二:静态重建+运行时检查每个间接跳转运行时查表,不保证高性能运行时检查间接跳转保证正确性二进制重建类型一二进制重建类型二现有工作现有工作 2 2:二进制补丁:二进制补丁 为了避免破坏控制流,进行一对一替换,将被翻译的指令替换为单指令跳板(例如一个跳转指令)执行跳板后,执行流被重定向到翻译后的指令(目标指令),执行完目标指令后再跳回 不能安全的使用多指令长跳板 单指令跳板存在跳转距离限制 长跳转需要使用trap来进行重定向需要使用trap跳板不