DOCADMASkill doca-dma

该技能用于指导用户进行DOCA DMA(直接内存访问)编程,涵盖从主机/DPU环境下的doca_dma上下文创建、配置doca_dma_task_memcpy任务类型、通过doca_dma_cap_task_memcpy_*查询设备能力与缓冲区大小限制、设置源/目标doca_mmap内存映射权限(包括跨Peer导出),到驱动进度引擎提交任务并处理完成事件,以及调试DOCA_ERROR_*错误码。适用场景包括:使用DPU/BlueField进行大块内存拷贝卸载、定位权限或缓冲区大小问题、判断DMA与RDMA/Comch/CPU memcpy的选型等。关键词:DOCA DMA, 内存直接访问, BlueField, DPU, doca_mmap, memcpy任务, 任务提交, 进度引擎, 权限配置, 能力查询, 错误调试, 数据加速

RDMA/DMA 0 次安装 0 次浏览 更新于 9/6/2026
开源协议 Apache-2.0
名称 doca-dma
描述 > 当用户在进行 DOCA DMA 动手编程时使用此技能——创建 doca_dma 上下文, 配置单个 doca_dma_task_memcpy 任务类型,通过 doca_dma_cap_task_memcpy_* 查询来调整缓冲区大小,在源/目标 doca_mmap 区域上设置 LOCAL_READ_ONLY / LOCAL_READ_WRITE 权限(对于跨对等方复制还要加上 doca_mmap_export_), 驱动进度引擎,或调试 DOCA_ERROR_ 返回值。 metadata: kind: library compatibility: > 要求 DOCA SDK 安装在 Linux 上的 /opt/mellanox/doca(Ubuntu 22.04/24.04 或 RHEL/SLES),并连接 BlueField DPU 或 ConnectX NIC。

DOCA DMA

起点: 本技能假定 DOCA 已安装,且用户正在 BlueField/ConnectX/主机上进行 DMA 实际操作。

示例问题

  • 如何启动 DOCA DMA 上下文,并在主机与 DPU 之间复制缓冲区?
  • 容量查询:单个 memcpy 任务能复制多大?
  • 源/目标 mmap 权限如何设置?
  • 选择 DMA 还是 RDMA/Comch/CPU memcpy?
  • 版本与设备支持检测、DOCA_ERROR_* 调试。

目标读者

构建使用 DOCA DMA 库的外部开发者,通过 C/C++ 或 FFI 使用 doca_dma_* 接口。

加载时机

用户进行 DMA 相关编程:上下文初始化、memcpy 任务配置、内存映射权限设置、能力查询、任务提交、错误诊断等。

本技能提供什么

这是一个薄加载器,具体内容在 CAPABILITIES.mdTASKS.md 中。

相关技能

  • doca-public-knowledge-map
  • doca-setup
  • doca-version
  • doca-programming-guide
  • doca-rdma
  • doca-comch
  • doca-debug