跳转至

【香山双周报 106】20260706 期

欢迎来到香山双周报专栏,我们将通过这一专栏定期介绍香山的开发进展。本次是第 106 期双周报。

ISCA 2026 香山 tutorial ~~不那么~~顺利举办!虽然一些同学因为签证原因没能现场报告,但我们紧急召集了替补,最终保证了 tutorial 高质量完成。特别感谢每一位关注香山发展的伙伴们!

关于香山近期开发进展,前端支持了 2-fetch 特性;访存优化了 DCache、Sbuffer 和预取器;XSAI 支持了新的矩阵访存模式,同时更新了指令扩展。

Tutorial 与会议花絮

  • 合影镇楼。只有左一的幸运儿在会议开始前 2 天及时拿到了签证,其他老师与同学用的都是已有的签证
    合影
  • XSAI 首次在 tutorial 中亮相,吸引了广泛关注
    XSAI 报告
    交流讨论
  • 万众一芯论文报告
    万众一芯论文

近期进展

前端

  • RTL 新特性
  • 支持 IFU 预译码训练 BPU(#6112
  • 初步支持 2-fetch(单周期处理两个取指块)(#5996
  • Bug 修复
  • 修复 FTQ trainCache 冲刷条件(#6147
  • 修复 IFU UncacheUnit 处理 PBMT.IO 区域的取指时,未等待指令提交,导致推测性取指的问题(#6144

后端

  • Bug 修复
  • (V2)修复 PMP bug:非 dmode 无法访问调试内存(#6095

访存与缓存

  • RTL 新特性
  • DCache 的 data SRAM 拆分为 32x2B(#6118
  • 通过哈希函数优化了 DCache 的寻址(#6166
  • Bug 修复
  • 修复了 CoupledL2 drrip 替换算法中 set dueling 逻辑错误的问题(XSCache #20
  • 性能优化
  • 优化了 Sbuffer 的请求合并逻辑(#6117
  • 优化了预取器的训练(#5544XSCache #18
  • 根据 CoupledL2 MSHR 的压力对预取请求进行限流(XSCache #21
  • 时序优化
  • 将 l1 预取器中 sent_vec 的更新推迟到 pf fire(#6102
  • 在 loadQueueRAW 中使用年龄矩阵选取最老的项(#6120
  • 代码质量
  • 将预取器相关的参数化配置移动到 Parameter.scala(#5382

XSAI

  • Bug 修复
  • 修复了 MMA 指令在 mtilen 过大时漏报非法指令异常的错误(XSAI #79
  • RTL 新特性
  • 支持细粒度矩阵访存以及 8bit 元素的转置访存(CUTE #19
  • 指令扩展更新至 XSAI proposal 12(XSAI #68
  • 代码质量
  • 重构 CUTE FPE 代码,拆分文件,清除符号链接(XSAI #81
  • 调试工具
  • 将 DiffTest 中的 C++17 写法回退到 C++11,以增强兼容性(XSAI #75

性能评估

处理器及 SoC 参数如下所示:

参数 选项
commit 59ef4ea7d
日期 2026/07/03
L1 ICache 64KB
L1 DCache 64KB
L2 Cache 2MB
L3 Cache 16MB
访存单元 3ld2st
总线协议 CHI
内存配置 DDR4-3200

性能数据如下所示:

SPECint 2006 @ 3GHz GCC15 XSCC SPECfp 2006 @ 3GHz GCC15 XSCC
400.perlbench 51.19 50.90 410.bwaves 116.08 104.81
401.bzip2 29.85 30.51 416.gamess 58.05 55.30
403.gcc 56.10 40.67 433.milc 70.32 69.31
429.mcf 70.05 62.69 434.zeusmp 77.83 67.38
445.gobmk 40.11 41.89 435.gromacs 38.20 34.94
456.hmmer 55.33 67.72 436.cactusADM 80.45 92.49
458.sjeng 40.66 41.54 437.leslie3d 60.27 60.78
462.libquantum 138.14 307.82 444.namd 43.31 45.56
464.h264ref 70.11 75.34 447.dealII 74.19 74.80
471.omnetpp 43.74 43.17 450.soplex 59.17 71.65
473.astar 33.73 33.05 453.povray 76.48 69.48
483.xalancbmk 83.35 92.95 454.Calculix 42.84 40.82
GEOMEAN 54.22 57.95 459.GemsFDTD 68.28 65.83
465.tonto 53.95 37.31
470.lbm 128.22 146.35
481.wrf 61.43 44.92
482.sphinx3 61.15 63.82
GEOMEAN 65.52 62.92

编译参数如下所示:

参数 GCC15 XSCC
编译器 gcc15 xscc
编译优化 O3 O3
内存库 jemalloc jemalloc
-march RV64GCB RV64GCB
-ffp-contraction fast fast
链接优化 -flto -flto
浮点优化 -ffast-math -ffast-math
-mcpu - xiangshan-kunminghu

注:我们使用 SimPoint 对程序进行采样,基于我们自定义的 checkpoint 格式制作检查点镜像,Simpoint 聚类的覆盖率为 100%。上述分数为基于程序片段的分数估计,非完整 SPEC CPU2006 评估,和真实芯片实际性能可能存在偏差。

相关链接

编辑:徐之皓、吉骏雄、陈卓、孙际儒、李衍君