本文为达坦科技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