本文为达坦科技DatenLord新系列文章【开源周报】的第15篇。

设立这一系列的初衷,是为了更透明地分享达坦科技开源项目的成长轨迹。在这里,我们不仅会同步项目近期的核心开发进展与技术突破,更将通过路线图为您揭示未来的演进方向。

📍 项目地址与参与

GitHub 仓库:https://github.com/open-rdma/open-rdma-driver

我们诚挚邀请所有对高性能网络、Rust系统编程或RDMA技术感兴趣的朋友点击链接关注、支持我们的项目。开源的力量源于社区。您的每一次关注、讨论或代码贡献,都是项目前进的重要动力。期待与您携手,共建更完善的高性能基础设施生态。

01、本周进展

核心目标:结合 open-rdma-driver 与 open-rdma-rtl 的本周演进,继续推进仿真测试体系、底层数据通路抽象以及更真实的 PCIe 行为模拟能力建设

<u>1. open-rdma-driver:ring buffer 抽象与测试流程持续演进</u>

​目标:​优化底层 ring buffer 结构和测试流程,为后续功能联调、错误定位和仿真稳定性提升打基础

变更内容:

  • 在 rust-driver/src/ring 相关路径中重构 ring buffer,实现 RingPtr 抽象,并将 ELEMENT\_NUM\_EXP 下沉到 RingSpec,减少 producer/consumer 两侧的重复配置
  • 同步调整 verbs、net、workers 等依赖路径,完成 ring buffer 重构后的接口对齐
  • 更新测试脚本与公共测试逻辑,使测试流程能够更可靠地识别失败场景,减少“测试异常但结果未正确上报”的情况

结果:

  • ring buffer 的结构更加统一,后续维护和扩展成本进一步降低
  • 测试脚本的失败识别能力得到增强,有利于缩短联调和问题定位周期

统计:

  • 05f3a9b:重构 ring buffer,涉及 19 个文件,代码变化为 +274/-141 行
  • 64ed9ef:为 RingPtr 补充 Display 实现,涉及 1 个文件,代码变化为 +12/-0 行
  • c70b8d6:增强测试失败识别能力,涉及 7 个文件,代码变化为 +98/-14 行

<u>2. open-rdma-driver:仿真环境与 DMA 内存路径继续完善</u>

​目标:​提升仿真与 emulation 环境中的 DMA 内存管理能力,使驱动侧行为更接近真实设备使用方式

变更内容:

  • 在 emulation 路径中改为使用基于 udmabuf 的 DMA buffer
  • 增加按设备索引选择 udmabuf 的能力,隔离不同设备的 buffer 使用路径
  • 补充基于 pagemap 的 VA 到 PA 转换工具,并将 emulated DMA 分配注册到 PA-VA 映射关系中
  • 保留原匿名内存分配实现作为 experimental 版本,方便后续对比与回退验证

结果:

  • 驱动在 emulation 场景中的 DMA buffer 管理方式更接近真实硬件环境
  • 为后续联调 PCIe 访问行为、定位地址映射类问题提供了更扎实的基础

统计:

  • 51de934:完善 emulation/udmabuf/DMA 路径,涉及 9 个文件,代码变化为 +291/-70 行
  • df8ee0b:补充 send path 待办标记,涉及 1 个文件,代码变化为 +1/-0 行

<u>3. open-rdma-driver:更新 cocotb 2.1 相关文档与仿真说明</u>

​目标:​同步新的 cocotb 版本使用方式,降低仿真环境升级后的配置和兼容成本

变更内容:

  • 更新中英文 rtl-simulation 文档,补充 cocotb 2.1 相关说明
  • 新增 cocotb-gpi-users-and-verilator-compat 文档,记录 GPI\_USERS、Verilator 兼容性与相关使用注意事项

结果:

  • 围绕 cocotb 升级后的仿真环境说明更加完整
  • 为团队统一仿真环境和排查版本兼容问题提供了文档支撑

统计:

  • 6a370c6:更新 cocotb 2.1 文档,涉及 3 个文件,代码变化为 +224/-5 行

<u>4. open-rdma-rtl:推进 cocotb 2.x 适配,改善仿真环境兼容性</u>

​目标:​使 RTL 仓库中的 cocotb 测试框架适配新版本 cocotb,为后续更复杂的仿真集成工作打基础

变更内容:

  • 升级 RTL 仓库中的 cocotb 相关测试逻辑,适配 cocotb 2.0 行为变化
  • 针对 cocotb 2.1 补充 GPI\_USERS 环境变量设置,完善 Verilator 运行前提
  • 调整系统测试入口和测试框架公共逻辑,减少版本升级带来的兼容性问题

结果:

  • RTL 仿真环境完成了一轮针对 cocotb 2.x 的兼容性更新
  • 为后续把更复杂的 PCIe 模型接入当前测试体系扫清了一部分环境障碍

统计:

  • 4f30b45:适配 cocotb 2.0,涉及 5 个文件,代码变化为 +33/-20 行
  • ff5d685:补充 cocotb 2.1 的 GPI\_USERS 设置,涉及 5 个文件,代码变化为 +33/-6 行

<u>5. cocotb-pcie 的 rtile 模型仿真测试成功</u>

​目标:​验证 cocotb-pcie 中 rtile 模型的可用性,评估其接入当前仿真体系的可行性

进展内容:

  • 完成 cocotb-pcie 中 rtile 模型的仿真测试,并成功跑通基础验证流程
  • 确认 rtile 模型具备接入当前仿真流程的基础条件
  • 结合本周 driver/rtl 两侧对 cocotb 2.x 与仿真环境的调整,进一步明确了后续集成方向

结果:

  • rtile 模型验证取得实质性进展,说明将其引入现有仿真流程具备可行性
  • 当前仿真体系已经从“环境兼容性适配”开始转向“更真实地模拟 PCIe 行为”

​统计:​当前阶段以功能验证和流程打通为主,重点在于确认 rtile 模型可用并收敛后续接入路径,暂不以主线代码量作为衡量重点

02、下周规划

<u>1. 推进 rtile 模型接入当前仿真流程</u>

  • 将 cocotb-pcie 中的 rtile 模型逐步纳入现有仿真测试框架
  • 梳理当前 driver/rtl 测试流程与 rtile 模型之间的接口、初始化和交互路径
  • 验证接入后基础场景是否能够稳定运行,并与现有流程结果进行对比

<u>2. 持续收敛驱动与测试框架联调基础</u>

  • 在 driver 侧继续完善 DMA、地址映射与 send path 相关能力
  • 结合新的测试失败识别机制,缩短测试异常的定位路径
  • 为后续更复杂的联调场景准备更稳定的底层抽象和测试基础

达坦科技始终致力于打造高性能​AI+Cloud基础设施平台​,积极推动AI应用的落地。达坦科技通过软硬件深度融合的方式,提供​AI推理引擎和高性能网络​,为AI应用提供弹性、便利、经济的基础设施服务,以此满足不同行业客户对AI+Cloud的需求。

公众号​:达坦科技DatenLord

DatenLord官网​:

https://datenlord.github.io/zh-cn/

知乎账号:

https://www.zhihu.com/org/da-tan-ke-ji

B站​:

https://space.bilibili.com/2017027518

​邮箱:​info@datenlord.com

如果您有兴趣加入达坦科技Rust前沿技术交流群、硬件敏捷开发和验证方法学讨论群或AI Infra ​交流群,请添加小助手微信:DatenLord\_Tech

标签: none

添加新评论