生态进展|达摩院玄铁团队修复 RISC-V 关键规范,原生 TLSDESC 落地在即!

来源:XuanTie玄铁 #达摩院玄铁#
1132

近日,作为 RISC-V 生态中极其重要的规范文档和软件生态基石,psABI 的上游仓库正式合入由达摩院玄铁处理器软件工具团队提交的重要补丁。此次补丁对原生 TLSDESC 的自定义函数调用规则进行了明确的定义和修正,彻底消除了原生 TLSDESC 特性在过去四年间落地过程中面临的最后一项技术障碍。不久后,用户将能够在玄铁 GCC/LLVM 工具链中利用原生 TLSDESC 实现对 TLS 变量的高效访问。

TLSDEC

RISC-V 高性能 TLS 访问必由之路

线程 TLS 变量在大型 workload 工程中非常常见,其存储模式的特殊性导致访问这种变量通常要远慢于普通全局变量,提升其访问速度对于各种大型工程都有极其重要的作用。

传统的 TLS-GD 访问模式速度相当缓慢,依赖调用 C 库核心函数__tls_get_addr,实现复杂且在 RISC-V 架构上通常要执行几十甚至上百条指令。因此一种全新 TLSDESC 访问模式逐渐走入各大主流工具链视野。它由 x86 架构发起、AArch64 社区跟进,目前已经在这两个架构的各种主流工具链/OS 中得到广泛应用。

TLSDESC 借助多 handler 思想,为不同类型变量选择最优的 ifunc 处理,绝大部分情况下仅需 5~6 条指令,最坏情况也与 TLS-GD 持平。同时,TLSDESC 的自定义函数调用规则,鉴于其独立于标准函数调用规范,能极大减少编译器因寄存器不足而产生的 spill 开销(即额外的内存读写),进一步加速 TLS 访问。可见,TLSDESC 通过更优雅的接口实现了和 TLS-GD 完全相同的功能,但速度更快、开销更小。

规范先行

玄铁积极推动 TLSDESC 落地

过去几年间,主流架构、工具链和操作系统早已全面跟进并广泛支持 TLSDESC。在 Google 积极推动下,Android、Fuchsia 等系统已放弃 TLS-GD,全面转向 TLSDESC。大势所趋,RISC-V 也势在必行。 然而,RISC-V 因存在多种扩展,停滞了近四年。

今天,达摩院玄铁团队完成了对 TLSDESC 函数调用规则的定义。这意味着未来,依托 RISC-V 架构的工具链产品终于可以依此权威依据,继续推进 TLSDESC 的开发工作。

玄铁处理器软件工具团队已包揽社区的这部分工作,并在针对该修改向 GCC/LLVM 社区提交开源补丁,积极推进 TLSDESC 在工具链产品中的最终落地,持续加码 RISC-V 跟进主流架构的步伐!

在此,也特别感谢来自社区的支持和肯定:

psABI Committee Review & Approval:

Kito Cheng(程皇嘉)

RISCV psABI 委员会主席,SiFive 首席工程师

Jessica Clarke

RISCV psABI 委员会副主席,剑桥大学高级研究员

Andrew Waterman

SiFive 共同创始人、总工程师,RISCV ISA 架构委员会副主席

Rui Ueyama

Blue Whale Systems 创始人兼 CEO,同时也是 LLD/MOLD 链接器的原作者和维护者

此次 psABI 补丁的完成,不仅填补了规范层面的空白,更撬动了停滞四年的社区进程,让 RISC-V 在 TLS 性能这一关键指标上终于对齐了 ARM/AArch64 等主流架构的成熟度。

规范落地是根基,全链路技术突破是下一步。面向未来,玄铁将与 RISC-V 国际基金会、各主流发行版及全球开发者社区保持深度协同,确保从上游规范、编译器、链接器到操作系统、最终用户产品的完整生态闭环。

RISC-V 的繁荣需要每一位生态参与者的共建。玄铁期待与全球开发者携手,共同推动 RISC-V 迈向高性能计算的新时代。

未来可期,我们相信,RISC-V 就现在。

  • 提交记录:https://github.com/riscv-non-isa/riscv-elf-psabi-doc/pull/496

责编: 爱集微
来源:XuanTie玄铁 #达摩院玄铁#
THE END
关闭
加载

PDF 加载中...