---
title: SDMA介绍及使能
description: "System Direct Memory Access（SDMA）是系统中负责数据的高带宽低延迟搬运的模块，是一种分布式分离式的DMA引擎。SDMA driver适配鲲鹏920专业版处理器的SDMA引擎，提供安全和性能两种模式，可满足多种应用场景需求。"
url: https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/KunpengDeveloper/usermanual/topic_0000002535616014.html
sourcePath: /source/zh/kunpenghpcs/KunpengDeveloper/usermanual/topic_0000002535616014.html
indexId: d7864731498fdc62023759af40289a7ba3363ca0cc8050375f81e8bee879984178
---
# SDMA介绍及使能

System Direct Memory Access（SDMA）是系统中负责数据的高带宽低延迟搬运的模块，是一种分布式分离式的DMA引擎。SDMA driver适配鲲鹏920专业版处理器的SDMA引擎，提供安全和性能两种模式，可满足多种应用场景需求。

SDMA为DMA的控制器，接受来自软件或者调度器的搬移任务，然后控制硬件完成搬移操作，最后通知软件的搬移完成状态，实现高带宽、低延迟的数据搬移。由于SDMA和其他device上的加速器是异步的，因此数据搬移可以在计算过程中完成，将数据搬移的开销掩盖在计算流水内，降低业务的非计算额外开销。

使能SDMA首先需要开启SMMU配置，具体开启方式参考上文提到的SMMU配置。

SDMA 组件分为用户态驱动和内核态驱动，使能系统中SDMA功能时，需要确保SDMA用户态驱动和内核态驱动加载正确。

通过下述命令查询SDMA内核态驱动是否加载：

```
ll /dev/sdma*
```

SDMA内核态驱动加载正确时，该路径下能够查询到4个SDMA设备，分别是sdma0、sdma1、sdma2、sdma3。

通过下述命令查询SDMA用户软件包是否正确安装：

```
ll /usr/lib64 | grep sdma
```

SDMA用户态软件包正确安装时，/usr/lib64目录下能够查询到libsdma_dk.so。
