1. 简介
TopsRider v2.5发布说明,2.5.115 版本适用于i20、T20、T21设备。新增/修改特性和问题修复部分相对于v2.4.136 的变更。
2. 功能优化
2.1 新增修改特性
2.1.1 软件发布包
- 发布的包全部由abi=0 切换到abi=1
- 安装包中去除driver文件夹,新增topsplatform文件夹,相关组件合入topsplatform中的topsplatform.run包中
2.1.2 TopsPlatform
- TopsGDB支持多卡环境
- IDE提供configuration的TopsGDB选项,供用户选择使用:
- 移除TopsCC的elemwise、reduction、nn计算接口
- topscc包中的默认安装路径统一由 /opt/topscc 调整为 /opt/tops。例如 /opt/topscc/bin/clang 变为 /opt/tops/bin/clang
- topsruntime包中Runtime 3.0 API相关的文件默认安装路径由 /usr 调整为 /opt/tops。例如 /usr/lib/libtopsrt.so 变更为 /opt/tops/lib/libtopsrt.so
- topsruntime包中Runtime 2.0和UMD相关的文件保持原默认安装路径不变,进入维持阶段,后续不再进行调整。
2.1.3 TopsFactor
- 从sdk中解耦出factor,新增TopsFactor安装包
- 使用新的安装包完成再安装老的sdk,需要先卸载factor后在安装
2.1.4 HLIR Builder
- ABI 兼容支持:删除了 std::string 版本接口;
- SDK软件配置管理规范,头文件路径更新(HLIR Builder & TopsGraphCompiler):dtu/hlir/builder 改为 gcu/hlir/builder; dtu/dtu_compiler 改为 gcu/tops_graph_compiler;
- 新增 Where API,语义与 NumPy Where, PyTorch Where 一致,支持动静态输入的隐式广播;
- 部分 API 接口易用性优化:从 std::vector<int64_t> 优化为 const std::vector<int64_t>&; std::vector<builder::Op> 优化为 const std::vector<builder::Op>&。具体涉及到的 API 如下表格所示;
- 构图过程增加 Log,可通过以下命令查看构图过程: export ENFLAME_LOG_DEBUG_MOD=”HLIR” 或export ENFLAME_LOG_DEBUG_MOD=”HLIR/Builder”。
2.1.5 Topsinference
- 废弃DT_ type(如DT_FLOAT32,DT_INT8)类型,请使用TIF类型替代(如TIF_FP32,TIF_INT8)
- resource_mode中1c4s/1c12s替代base_resource/triple_resource,废弃base_resource/triple_resource
- 废弃optimizer中setfusionmode 和getfusionmode接口,当前无实际功能用途
- 不再支持通过环境变量方式配置TopsInference的编译选项。
- 支持无卡编译,详细使用见TopsInference文档说明
- 支持客户在sdk外部使用自定义op
2.1.6 Paddlepaddle
- 适配飞桨推理框架 PaddleInference
2.1.7 Topsexec
- Topsexec工具编译指定算子计算精度
2.1.8 Topsidea
- Topsidea一次性输出所有精度有问题的层
2.1.9 TopsCloud
- k8s-device-plugin: 新增支持在k8s集群中做分布式推理和分布式训练时能申请到同一个CPU Numa Node下的多张物理亲和的卡
- kubeone: 新增支持通过EGC从外网离线部署GCU K8S集群
2.1.10 BigModel
- huggingface-gcu
– 版本升级支持accelerate-0.22+gcu
– 版本升级支持transformers-4.32.0+gcu
– 版本升级支持diffusers-0.21.1+gcu
– 版本升级支持peft-0.5.0+gcu
– 新增AIGC用户编程用例组件 sd_scripts,支持sdxl Lora 、sdxl textural_inversion、sd dreambooth 、 sd text2image 、sd lora等微调编程用例,新增自我构建的柴犬数据集shiba-inu-fenda支持
- Distributed
– 版本升级支持megatron_deepspeed-23.8+gcu,支持组合deepspeed 运行4D并行分布式训练(张量并行+流水并行 + 数据并行 + ZERO1/ZERO2)
– 发布DeepSpeed-0.9.2+gcu,新增ZERO1、ZERO2、ZERO-OFFLOAD支持,支持与megatron_deepspeed 组合运行4D并行分布式训练
– 新增分布式微调组件collie_lm-1.0.6.dev0+gcu,支持基于gcu的旋转位编码 RoPE实现,支持多机多卡的4D并行分布式微调,支持大语言模型的全参微调、有效参数微调
– 新增大语言模型用户编程用例组件 llm_scripts,支持LLama2 7b 13b 预训练、全参微调以及Lora微调编程用例,支持llama2 70b 全参微调编程用例,支持chatglm-2 6b全参微调编程用例、支持chatglm-3 6b全参微调编程用例
2.1.11 Model
- 推理模型支持python3.10
2.2 T2x支持模型
2.2.1 PaddlePaddle框架新增模型
模型名称 | 框架 | 说明 |
Mastrcnn (动态) | PaddlePaddle | 8卡收敛,EFP |
Fastrcnn(动态) | PaddlePaddle | 8卡收敛,EFP |
DLRM | PaddlePaddle | 8卡收敛,EFP |
2.2.2 PyTorch 新增模型
模型名称 | 框架 | 说明 |
DLRM | PyTorch | 8卡收敛,EFP |
Espnet-Conformer(动态) | PyTorch | 8卡收敛,EFP |
2.2.3 TensorFlow 模型支持
此次无新增。
2.2.4 ARM 模型支持(此次无新增)
模型名称 | 框架 | 数据类型 | 卡数 |
Resnet50 v1.5 | PyTorch | EFP | 2 |
BERT Large | PyTorch | EFP | 2 |
BERT Base | PyTorch | EFP | 2 |
YOLO v3 | PyTorch | EFP | 2 |
YOLO v5s | PyTorch | EFP | 2 |
Unet | PyTorch | EFP | 2 |
SSD | PyTorch | EFP | 2 |
3. 问题修复
1、 | TopsCC | 将设备端函数代码直接写在调用者(caller)的内部和采用函数内联(forceinline)这两种方式生成的代码大小不一致 |
2、 | TopsCC | printf以格式转换说明符结尾时,会多输出(null) |
3、 | TopsCC | printf(“%%”)多打印了一个% |
4、 | TopsCC | kernel 函数中最多定义 8 个 constexpr,超过会出现运行时错误 |
5、 | TopsCC | 某些intrinsic函数参数需要强制转换成addrespace(5)才能编译 |
4. 文档
- 无新增
5. 使用限制
- PaddlePaddle 框架下 必须使用Python 3.8 及以上
- Topscc 组件kernel c++不能支持纯虚成员函数
- TopsGDB在i20设备上支持C/C++源码调试;在T20、T21设备上支持汇编级别的调试,对于源码调试功能将在后续版本支持
- RHEL 9.2 不支持虚拟化功能
6. EFSMI版本
- 1.21.0
7. 操作系统和Python支持
7.1 适配说明
- Host 环境:仅Enflame Driver 对此 OS 环境做兼容适配,Docker 运行 Ubuntu
- Docker 环境:软件栈功能已做适配测试,需使用相同OS 的 Host
7.2. 操作系统支持列表
- 所有 OS 支持列表
操作系统名称 | 架构 | 内核版本 | GCC | GLIBC | 说明 |
Ubuntu 18.04.z(z<=6) | x86 | 4.15.0 & 5.4 | 7.5 | 2.27 | Host & Docker |
Ubuntu 18.04.6 | aarch64 | 5.4 | 7.5 | 2.27 | Host & Docker |
Ubuntu 20.04.z(z<=5) | x86 | 5.4 & 5.11 & 5.13 & 5.15 | 9.3 | 2.31 | Host & Docker |
Ubuntu 22.04.z (z<=1) | x86 | 5.15 | 11.2 | 2.35 | 仅 kmd 在 Host 上已适配,Docker 中请使用其他OS |
CentOS 7.9 | x86 | 3.1 | 5.5 | 2.17 | Host & Docker |
Kylin v10 | x86 | 4.19.0 | 7.3 | 2.28 | 仅 kmd 在Host上已适配,Docker 使用 Ubuntu |
UOS 20 Server | x86 | 4.19.0 | 7.3 | 2.28 | 仅 Host 适配,Docker 使用 Ubuntu |
OpenEular | X86 | 5.10.0 | 10.3.1 | 2.34 | Host & Docker |
龙蜥 8.2 QU2 | X86 | 4.18.0 | 8.3.1 | 2.28 | Host & Docker |
龙蜥 8.6 | X86 | 4.19.90 | 7.3.0 | 2.28 | Host & Docker |
7.3 Python 支持
Python 3.6,Python 3.8,Python 3.10(推理模型支持)