Driving SDK是基于昇腾NPU平台开发的适用于自动驾驶场景的算子和模型加速库,提供了一系列高性能的算子和模型加速接口,支持PyTorch框架。
pip3 install -r requirements.txt
安装python依赖,requirements.txt
文件位于项目根目录下。ONNX
插件,请安装protobuf-devel-3.14.0
, 在centos
系统上可以执行yum install protobuf-devel-3-14.0
,否则请将CMakePresets.json
中的ENABLE_ONNX
选项改为FALSE
,CMakePresets.json
文件位于项目根目录下。umask 0027
将umask调整为0027,以保证文件权限正确。当前并未正式发布whl包 ,请参考源码安装方式。
git clone https://gitee.com/ascend/DrivingSDK.git -b master
注意:请在仓库根目录下执行编译命令
bash ci/build.sh --python=3.8
生成的whl包在DrivingSDK/dist
目录下, 命名规则为mx_driving-1.0.0+git{commit_id}-cp{python_version}-linux_{arch}.whl
。
请参考编译指导获取更多编译细节。
参数--python
指定编译过程中使用的python版本,支持3.8及以上:
参数 | 取值范围 | 说明 | 缺省值 | 备注 |
---|---|---|---|---|
python | pytorch2.1.0、2.3.1及以上版本,支持3.8及以上 | 指定编译过程中使用的python版本 | 3.8 |
支持的CPU架构,Python,PyTorch和torch_npu版本对应关系如下:
Gitee分支 | CPU架构 | 支持的Python版本 | 支持的PyTorch版本 | 支持的torch_npu版本 |
---|---|---|---|---|
master | x86&aarch64 | Python3.8.x,Python3.9.x,Python3.10.x,Python3.11.x | 2.1.0 | v2.1.0 |
Python3.8.x,Python3.9.x,Python3.10.x,Python3.11.x | 2.3.1 | v2.3.1 | ||
Python3.8.x,Python3.9.x,Python3.10.x,Python3.11.x | 2.4.0 | v2.4.0 | ||
branch_v6.0.0-RC1 | x86&aarch64 | Python3.7.x(>=3.7.5),Python3.8.x,Python3.9.x,Python3.10.x | 1.11.0 | v1.11.0-6.0.rc1 |
Python3.8.x,Python3.9.x,Python3.10.x | 2.1.0 | v2.1.0-6.0.rc1 | ||
Python3.8.x,Python3.9.x,Python3.10.x | 2.2.0 | v2.2.0-6.0.rc1 | ||
branch_v6.0.0-RC2 | x86&aarch64 | Python3.7.x(>=3.7.5),Python3.8.x,Python3.9.x,Python3.10.x | 1.11.0 | v1.11.0-6.0.rc2 |
Python3.8.x,Python3.9.x,Python3.10.x | 2.1.0 | v2.1.0-6.0.rc2 | ||
Python3.8.x,Python3.9.x,Python3.10.x | 2.2.0 | v2.2.0-6.0.rc2 | ||
Python3.8.x,Python3.9.x,Python3.10.x | 2.3.1 | v2.3.1-6.0.rc2 | ||
branch_v6.0.0-RC3 | x86&aarch64 | Python3.8.x,Python3.9.x,Python3.10.x,Python3.11.x | 2.1.0 | v2.1.0-6.0.rc3 |
Python3.8.x,Python3.9.x,Python3.10.x,Python3.11.x | 2.3.1 | v2.3.1-6.0.rc3 | ||
Python3.8.x,Python3.9.x,Python3.10.x,Python3.11.x | 2.4.0 | v2.4.0-6.0.rc3 |
cd DrivingSDK/dist
pip3 install mx_driving-1.0.0+git{commit_id}-cp{python_version}-linux_{arch}.whl
如需要保存安装日志,可在pip3 install
命令后添加--log <PATH>
参数,并对您指定的目录做好权限控制。
Pytorch 框架训练环境的卸载请参考昇腾官方文档Pytorch框架训练环境卸载。 Driving SDK的卸载只需执行以下命令:
pip3 uninstall mx_driving
import torch, torch_npu
from mx_driving.common import scatter_max
updates = torch.tensor([[2, 0, 1, 3, 1, 0, 0, 4], [0, 2, 1, 3, 0, 3, 4, 2], [1, 2, 3, 4, 4, 3, 2, 1]], dtype=torch.float32).npu()
indices = torch.tensor([0, 2, 0], dtype=torch.int32).npu()
out = updates.new_zeros((3, 8))
out, argmax = scatter_max(updates, indices, out)
.
├── kernels # 算子实现
│ ├── op_host
│ ├── op_kernel
│ └── CMakeLists.txt
├── onnx_plugin # onnx框架适配层
├── mx_driving
│ ├── __init__.py
│ ├── csrc # 加速库API适配层
│ └── ...
├── model_examples # 自动驾驶模型示例
│ └── BEVFormer # BEVFormer模型示例
├── ci # ci脚本
├── cmake # cmake脚本
├── CMakeLists.txt # cmake配置文件
├── CMakePresets.json # cmake配置文件
├── docs # 文档
| ├── api # 算子api调用文档
| └── ...
├── include # 头文件
├── LICENSE # 开源协议
├── OWNERS # 代码审查
├── README.md # 项目说明
├── requirements.txt # 依赖
├── scripts # 工程脚本
├── setup.py # whl打包配置
└── tests # 测试文件
请参见算子清单。
echo 2 > /proc/sys/kernel/randomize_va_space
strip
, 又称移除调试符号信息, 开启方式如下:strip -s <so_file>
出于安全性及权限最小化角度考虑,不建议使用root
等管理员类型账户使用Driving SDK。
在使用Driving SDK时,您可能会进行profiling、调试等操作,建议您对相关目录及文件做好权限控制,以保证文件安全。
0027
及以上,保障新增文件夹默认最高权限为750
,文件默认最高权限为640
。类型 | Linux权限参考最大值 |
---|---|
用户主目录 | 750(rwxr-x---) |
程序文件(含脚本文件、库文件等) | 550(r-xr-x---) |
程序文件目录 | 550(r-xr-x---) |
配置文件 | 640(rw-r-----) |
配置文件目录 | 750(rwxr-x---) |
日志文件(记录完毕或者已经归档) | 440(r--r-----) |
日志文件(正在记录) | 640(rw-r-----) |
日志文件目录 | 750(rwxr-x---) |
Debug文件 | 640(rw-r-----) |
Debug文件目录 | 750(rwxr-x---) |
临时文件目录 | 750(rwxr-x---) |
维护升级文件目录 | 770(rwxrwx---) |
业务数据文件 | 640(rw-r-----) |
业务数据文件目录 | 750(rwxr-x---) |
密钥组件、私钥、证书、密文文件目录 | 700(rwx------) |
密钥组件、私钥、证书、加密密文 | 600(rw-------) |
加解密接口、加解密脚本 | 500(r-x------) |
在源码编译安装Driving SDK时,需要您自行编译,编译过程中会生成一些中间文件,建议您在编译完成后,对中间文件做好权限控制,以保证文件安全。
在Driving SDK的配置文件和脚本中存在公网地址。
类型 | 开源代码地址 | 文件名 | 公网IP地址/公网URL地址/域名/邮箱地址 | 用途说明 |
---|---|---|---|---|
自研 | 不涉及 | ci/docker/ARM/Dockerfile | https://mirrors.aliyun.com/pypi/simple | docker配置文件,用于配置pip源 |
自研 | 不涉及 | ci/docker/X86/Dockerfile | https://mirrors.huaweicloud.com/repository/pypi/simple | docker配置文件,用于配置pip源 |
自研 | 不涉及 | ci/docker/ARM/install_cann.sh | https://ascend-cann.obs.cn-north-4.myhuaweicloud.com/CANN | cann包下载地址 |
自研 | 不涉及 | ci/docker/x86/install_cann.sh | https://ascend-cann.obs.cn-north-4.myhuaweicloud.com/CANN | cann包下载地址 |
自研 | 不涉及 | ci/docker/ARM/build_protobuf.sh | https://gitee.com/it-monkey/protocolbuffers.git | 用于打包whl的url入参 |
自研 | 不涉及 | ci/docker/X86/build_protobuf.sh | https://gitee.com/it-monkey/protocolbuffers.git | 用于打包whl的url入参 |
自研 | 不涉及 | ci/docker/X86/install_obs.sh | https://obs-community.obs.cn-north-1.myhuaweicloud.com/obsutil/current/obsutil_linux_amd64.tar.gz | obs下载链接 |
自研 | 不涉及 | ci/docker/ARM/install_obs.sh | https://obs-community.obs.cn-north-1.myhuaweicloud.com/obsutil/current/obsutil_linux_amd64.tar.gz | obs下载链接 |
自研 | 不涉及 | ci/build.sh | https://gitee.com/ascend/pytorch.git | 编译脚本根据torch_npu仓库地址拉取代码进行编译 |
自研 | 不涉及 | cmake/util/makeself/makeself.sh | https://makeself.io/ | makeself主页 |
自研 | 不涉及 | cmake/util/makeself/makeself.sh | http://www.gnu.org/copyleft/gpl.html | license |
自研 | 不涉及 | cmake/util/makeself/makeself.sh | https://www.etalabs.net/sh_tricks.html | 接口文档 |
自研 | 不涉及 | Third_Party_Open_Source__Software_Notice | foss@huawei.com | license 请求邮箱 |
自研 | 不涉及 | cmake/util/makeself/makeself.sh | megastep@megastep.org | makeself 作者联系邮箱 |
自研 | 不涉及 | cmake/util/makeself/makeself.lsm | megastep@megastep.org | makeself 作者联系邮箱 |
自研 | 不涉及 | cmake/util/makeself/makeself-header.sh | foss@huawei.com | license |
自研 | 不涉及 | cmake/util/makeself/makeself.1 | megastep@megastep.org | makeself 作者联系邮箱 |
自研 | 不涉及 | cmake/util/makeself/makeself.1 | fenio@o2.pl | makeself 主页原开发作者的邮箱 |
自研 | 不涉及 | LICENSE | http://www.apache.org/licenses/ | apache license |
自研 | 不涉及 | LICENSE | http://www.apache.org/licenses/LICENSE-2.0 | apache license 2.0 |
开源引入 | https://gitee.com/it-monkey/protocolbuffers.git | ci/docker/ARM/build_protobuf.sh | https://gitee.com/it-monkey/protocolbuffers.git | 用于构建 protobuf |
开源引入 | https://gitee.com/it-monkey/protocolbuffers.git | ci/docker/X86/build_protobuf.sh | https://gitee.com/it-monkey/protocolbuffers.git | 用于构建 protobuf |
模型名称 | 公网地址声明 |
---|---|
UniAD | model_examples/UniAD/public_address_statement.md |
BEVDet | model_examples/BEVDet/public_address_statement.md |
参考API清单,Driving SDK提供了对外的自定义接口。如果一个函数在文档中有展示,则该接口是公开接口。否则,使用该功能前可以在社区询问该功能是否确实是公开的或意外暴露的接口,因为这些未暴露接口将来可能会被修改或者删除。
Driving SDK在运行时依赖于PyTorch
及torch_npu
,您需关注通信安全加固,具体方式请参考torch_npu通信安全加固。
Driving SDK在运行时依赖于PyTorch
及torch_npu
,涉及通信矩阵,具体信息请参考torch_npu通信矩阵。
Driving SDK版本分支的维护阶段如下:
状态 | 时间 | 说明 |
---|---|---|
计划 | 1—3 个月 | 计划特性 |
开发 | 3 个月 | 开发特性 |
维护 | 6-12 个月 | 合入所有已解决的问题并发布版本,针对不同的Driving SDK版本采取不同的维护策略,常规版本和长期支持版本维护周期分别为6个月和12个月 |
无维护 | 0—3 个月 | 合入所有已解决的问题,无专职维护人员,无版本发布 |
生命周期终止(EOL) | N/A | 分支不再接受任何修改 |
Driving SDK版本 | 维护策略 | 当前状态 | 发布时间 | 后续状态 | EOL日期 |
---|
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型