每周一龙:第 28 期
每周一都为大家报道 LoongArch 社区最前线的第一手新鲜资讯! 上周的进展主要有工具链、本站阅读材料的新增,以及证实了 3A6000 可上水冷(但需自备角磨机等机加工设备)。 详情点进来看!
如无特别说明,文中提及的日期、时间都为北京时间(UTC+8)。
先「马」再看
本栏目的内容具有一定延续性,将持续追踪报道 LoongArch 领域的重要或长期项目(坑)。
Linux
Huacai Chen 发出了本开发周期的第二组问题修复,
Linus 已将其合并入 tag v6.7-rc5
。
主要的变更有:
- 修复了上期周报提到的 BPF JIT 错误实现(Hengqi Chen),Tiezhu Yang 也修了另两个问题;
- 修复了上上期、上期周报都提到的
execve
之后丢失系统调用号信息的问题(Hengqi Chen); - 修复了上上期周报提到的 Clang 构建的压缩内核不能引导的问题(WANG Rui)。
工具链
binutils
Xi Ruoyao 为共享库启用了
la.got
到 la.pcrel
的 relaxation 优化。
mengqinggang 意图为 LoongArch 汇编语言增加双引号括起来的符号名和寄存器名支持,但未一并给出意欲支持的需求场景。Fangrui Song 随后指出了寄存器名还加引号有点奇怪,应该是不用支持;作者同意了,会再改一版。
GCC
杰哥三天前 (12 月 8 日)发现 GCC 14 的 20231203 快照版本,相比 GCC 13.2.1 居然劣化了 3A6000 的 CoreMark 跑分高达 15%!Xi Ruoyao 立即加入排查队伍。 大家发现了至少 4 个彼此独立的问题:
- PR112919:先前在 LA464 上证实最优的代码块对齐参数,对 LA664 反而是损害;
- PR112935:架构无关部分发生了劣化,Andrew Pinski 已经给出补丁;
- PR112936:排查上一个问题时,发现 LoongArch 的乘除法指令成本定义得非常坏,完全不反映现实,Xi Ruoyao 也已给出补丁;以及
- PR111126 也与本问题存在一定关系,是后续可以惠及 LoongArch、RISC-V 和 MIPS64r6 的一项改进。
Jiahao Xu 做的 LoongArch v1.10 的近似浮点倒数指令 frecipe.[sd]
、近似浮点平方根倒数指令 frsqrte.[sd]
及其 SIMD 支持,已由 chenglulu 合入主线。
感谢杰哥提供新闻线索!
Xi Ruoyao 允许了把 -mcmodel=extreme
与 model
属性,
搭配 -mexplicit-relocs=auto
使用。
Yang Yujie 修复了对
__builtin_eh_return
的调用会导致同一函数中其他常规返回路径的返回值被破坏的问题。
此问题被发现会导致 libgcc 的 _Unwind_RaiseException
在极端情况下返回错误结果。
Yang Yujie 还基于安同开源社区(AOSC)开发者刘子兴先前在 9 月份发出的 D 语言 LoongArch 适配补丁, 将其迭代到了第三版。
本期的大多数 GCC 新闻都是 Xi Ruoyao 帮忙整理(以及自己制造)的,让我们感谢 tā 的奉献!
LLVM
wangleiat 教会了 LLVM 做很多 SIMD 代码生成:
- 整数元素的取完整乘法结果高半部分,
对应 LLVM IR 中操作向量数据类型的
mul
随后ashr
/lshr
再trunc
的操作; - 整数元素的选择,
对应 LLVM IR 中操作向量数据类型的
select
; - 浮点、整数的元素比较,
分别对应 LLVM IR 中操作向量数据类型的
fcmp
与icmp
; - 浮点开平方、求倒数,
分别对应 LLVM IR 中的
llvm.sqrt.*
intrinsics, 以及被除数是 1.0 的fdiv
; - 浮点求相反数,
对应 LLVM IR 中操作向量数据类型的
fneg
。
SixWeining 同步了 LoongArch ELF psABI 20231102 版本(整体版本号 v2.20)变更了的重定位类型定义。
杂闻播报
本站的其他栏目得到了些久违的更新:
- 新增了《基础设施版本基线参考》与《典型龙架构配置数据收集》两篇阅读材料;
- 为《如何称呼龙架构?》更新了信息,
- 在首页新增了 ALT Linux、勇豹两种发行版;
- 在首页新增了 Haiku、ReactOS 两种历史悠久的小众内核。
Xinmudotmoe 十月份向 ROCm 的 ROCR-Runtime 组件提交的 LoongArch 支持补丁,已为 AMD 维护者所确认:将进入 ROCm 6.1 官方版本。
安同开源社区(AOSC)贡献者傅孝元为 Rust 的 Lua 绑定库 mlua 新增了 LoongArch 支持。 感谢白铭骢投递新闻线索!
社区整活儿
本栏目接受任何网友的投稿,只要内容与 LoongArch 有关,并可以为读者带来价值, 无论严肃贡献(整的大活儿)或是博君一笑都一概欢迎!
近日,Xinmudotmoe 在角磨机的配合下,为 tā 的 3A6000 换上了水冷! 看看 tā 的好活儿:
3A6000 水冷计划!
固件组更新太快, 使得我刚磨开 PCIe 槽就有了更好的固件。(白干)
(编者按:3A6000 评估板的出厂固件是不能点亮 RDNA 或更往后的 A 卡的。 虽然可用「献祭流」绕过, 但前提是要「解决 x8 槽插 x16 卡的问题」——朋友的角磨机怕不是就为这购买的……)
XA61200 主板扣具兼容 LGA 115x 孔位,但处理器高度过低,且桥片散热器与处理器供电电感位置冲突。 只得用角磨机对 115x 水冷头框架进行打磨,使其兼容。 可见打磨后水冷头的变化(点击可看高清大图,下同):
测试安装压力:
运行效果:
角磨一时爽,漏液火葬场!
张贴栏
本栏目可供张贴公益性质的各种信息。
- 友情扩散:安同开源社区(AOSC)的龙架构移植主线化工作「合龙」仍在如火如荼进行中, 此工作完成后龙架构将升格为 AOSC OS 的 Tier 1 架构。 欢迎同学们试用、反馈,也欢迎有志之士一同加入(沟通渠道详见 AOSC 网站相关栏目)。
- 新增一篇英雄帖:在社区中新增 LoongArch 的 SMBIOS Type 44 表格支持。 欢迎有志之士去评论区报到!
- 本周报持续接受网友投稿。欢迎来上游坐坐!