4. 发布公告¶
4.1. 发布包支持的Linux平台¶
CPU架构 |
发布包形态或支持的Linux-OS版本 |
x86_64 |
CentOS 7/8、Ubuntu 16.04/18.04/20.04、Debian 9、Debian 10、Kylin V10 |
aarch64 |
CentOS 7、Ubuntu 16.04、Ubuntu 18.04、Kylin V10 |
4.2. 组件版本号¶
组件名 |
组件版本号 |
支持的CPU平台 |
支持的MLU平台 |
CNBin |
v1.8.1 |
x86_64、aarch64 |
Cloud、Edge |
CNAS |
v4.8.3 |
x86_64、aarch64 |
Cloud |
CNCC |
v4.8.2 |
x86_64、aarch64 |
Cloud |
CNCodec |
v1.14.3 |
x86_64、aarch64 |
Cloud、Edge |
CNCodec3 |
v1.8.1 |
x86_64 |
Cloud |
CNDev |
v3.8.2 |
x86_64、aarch64 |
Cloud、Edge |
CNDrv |
v2.8.1 |
x86_64、aarch64 |
Cloud、Edge |
CNGDB |
v3.8.0 |
x86_64 |
Cloud、Edge |
CNPAPI |
v3.8.2 |
x86_64、aarch64 |
Cloud、Edge |
CNPerf |
v5.8.2 |
x86_64、aarch64 |
Cloud、Edge |
CNRT |
v6.8.0 |
x86_64、aarch64 |
Cloud、Edge |
Cambricon CNRTC |
v0.7.0 |
x86_64、aarch64 |
Cloud |
CNStudio |
v1.0.0 |
x86_64 |
Cloud |
LLVM-MM |
v2.5.0 |
x86_64 |
Cloud |
CNPX |
v1.1.0 |
x86_64、aarch64 |
Cloud、Edge |
CNVS |
v0.14.0 |
x86_64、aarch64 |
Cloud |
注解
以上表格所说的支持 Edge 平台,具体是指软件支持运行在 Edge 平台的 OS 上。 如果是编译器组件,无特殊说明时,默认都是支持编译目标平台为 Edge 的。
IP Series |
Edge Series |
Cloud Series |
1M10 |
MLU220-EDGE/SOM |
MLU220-M.2/M2I/M2RA/U.2/M2T/MXM |
1M20 |
CE3226-V100/V101 |
MLU270-D4/F4/S4/S4a/V4/X5K/F4/FD4/V4K/A4K |
1M70 |
- |
MLU290-M5 |
- |
- |
MLU370-S4/X4/X8/M8 |
- |
- |
MLU570, MLU590-H8/M9 |
4.3. CNToolkit 和 Driver 的 LTS 维护状态¶
CNToolkit 和 Driver 是解耦独立发布的。有关Driver 的 LTS 版本维护策略和周期,参见《寒武纪驱动版本说明书》。
CNToolkit 和 Driver 兼容性遵循“端云一体”和“前向兼容”原则:
端云一体
CNToolkit 和 Driver 的某个 LTSB(Long Term Support Branch,长期服务分支)版本同时支持 Cloud 和 Edge 两条产品线的某些硬件型号。
Driver 的部分 STSB(Short Term Support Branch,短期服务分支)版本仅支持 Cloud 或 Edge 产品线的部分硬件。
前向兼容(即兼容旧版本的 Driver )
Driver 选用最小依赖版本后,CNToolkit 升级可以兼容使用满足最小 Driver 依赖的功能和性能。
对于高版本 CNToolkit 提供的功能或性能,如果对 Driver 最小依赖版本有升级要求,会在 CNToolkit 新特性对 Driver 最小依赖变更 中明确特性简介和推荐 Driver 版本。
CNToolkit 版本 |
Driver 最小依赖 |
CNToolkit 分支维护状态 |
v3.8.x |
v4.20.0 |
STSB 支持 MLUv02/v03/v05 系列产品 |
v3.7.x |
v4.20.0 |
STSB 支持 MLUv02/v03/v05 系列产品 |
v3.6.x |
v4.20.0 |
STSB 支持 MLUv02/v03/v05 系列产品 |
v3.5.x |
v4.20.0 |
EOL |
v3.4.x |
v4.20.0 |
EOL |
v3.3.x |
v4.20.0 |
EOL |
v3.2.x |
v4.15.12 |
EOL |
v3.1.x |
v4.15.12 |
EOL |
v3.0.x |
v4.15.12 |
EOL |
v2.8.x |
v4.15.12 |
LTSB 支持 MLUv02/v03 系列产品 |
v2.7.x |
v4.15.12 |
EOL |
v2.6.x |
v4.15.11 |
EOL |
v2.5.x |
v4.15.9 |
EOL |
v2.4.x |
v4.15.6 |
EOL |
v2.3.x |
v4.15.6 |
EOL |
v2.2.x |
v4.15.2 |
EOL |
v2.1.x |
v4.12.3 |
EOL |
v2.0.x |
v4.12.3 |
EOL |
v1.8.x |
v4.9.2 |
LTSB 维护策略和周期同 v1.7.x, 此版本首次支持 CNBin 模块, 支持编译时指令压缩运行时解压缩 |
v1.7.x |
v4.9.2 |
LTSB 支持 MLUv02 系列产品, 维护周期和板卡售后服务周期一致 |
<= v1.6.x |
N/A |
EOL |
4.4. 组件依赖关系¶
组件版本 |
依赖组件版本 |
CNBin v1.8.1 |
N/A |
CNAS v4.8.3 |
CNBin >= v1.8.0 |
CNCC v4.8.2 |
CNAS >= v4.8.0 |
CNCodec v1.14.3 |
Driver >= v4.20.0、CNDrv >= v1.8.0 |
CNCodec3 v1.8.1 |
Driver >= v5.0.0、CNDrv >= v2.8.0 CNRT >= v6.8.0 |
CNDev v3.8.2 |
Driver >= v5.0.0 |
CNDrv v2.8.1 |
Driver >= v5.0.0、CNBin >= v1.8.0 |
CNGDB v3.8.0 |
CNDrv >= v2.8.0 |
CNPAPI v3.8.2 |
Driver >= v5.0.0 |
CNPerf v5.8.2 |
CNDev >= v3.8.0、CNPAPI >= v3.8.0 CNRT >= v6.8.0、CNDrv >= v2.8.0 CNBin >= v1.8.0 |
CNRT v6.8.0 |
CNDrv >= v2.8.0 |
Cambricon CNRTC v0.7.0 |
CNCC >= v4.8.0、CNDrv >= 2.8.0 |
CNStudio v1.0.0 |
N/A |
LLVM-MM v2.5.0 |
CNDRV >= v2.8.0、 CNAS >= v4.8.0 CNRTC >= v0.7.0 |
CNPX v1.1.0 |
CNPAPI >= v3.8.0 |
CNVS v0.14.0 |
CNDev >= v3.8.0、CNDrv >= v2.8.0 CNRT >= v6.8.0 |
4.5. CNToolkit 新特性对 Driver 最小依赖变更¶
CNToolkit-Cloud 源依赖包安装时会检测当前环境的 Driver 版本是否满足 Driver >= 5.0 。
除下面依赖说明以外的特性,CNToolkit v3.x 版本中各个组件依赖的 Driver 最小版本均为 v5.0.0。
CNToolkit-r3.8 对 Driver 版本的依赖说明
模块 |
特性描述 |
依赖 Driver 版本 |
CNDrv |
支持 CNGDB 在 MLU Core 运行异常时查看挂死现场信息 |
Driver >= v5.10.23 |
CNDev |
CNDev提供MLU-Link线缆信息 |
Driver >= v5.10.19 |
CNDev |
CNDev提供获取MLU-Link端口的PFC包和CNP包统计 |
Driver >= v5.10.19 |
CNToolkit-r3.7 对 Driver 版本的依赖说明
模块 |
特性描述 |
依赖 Driver 版本 |
CNVS |
pcie插件 h2d、d2h 带宽修正 |
Driver >= v5.10.15 |
CNDev |
CNDev提供Video Codec详细利用率信息 |
Driver >= v5.10.16 |
CNDev |
CNDev提供MIM信息相关功能接口 |
Driver >= v5.10.16 |
CNPAPI |
CNPAPI Activity API部分activity新增字段表明是否在主机侧执行 |
Driver >= v5.10.15 |
CNToolkit-r3.6 对 Driver 版本的依赖说明
模块 |
特性描述 |
依赖 Driver 版本 |
CNDrv |
新增异步拷贝类 v2 接口 |
Driver >= v5.10.13 |
CNDrv |
优化 |
Driver >= v5.10.13 |
CNDrv |
优化设备枚举方法,保证与 CNDEV 设备顺序一致 |
Driver >= v5.10.13 |
CNDrv |
新增 |
Driver >= v5.10.15 |
CNPAPI |
CNPAPI Activity API支持从cnMemcpyAsync_V2等接口获取activity |
Driver >= v5.10.13 |
CNPAPI |
CNPAPI Activity API支持获取Memory Operation |
Driver >= v5.10.15 |
CNDev |
CNDev提供获取MLU设备温度信息接口 |
Driver >= v5.10.8 |
CNDev |
CNDev提供获取MLU设备功耗信息接口 |
Driver >= v5.10.8 |
CNDev |
CNDev提供获取MLU-Link端口Ongoing状态 |
Driver >= v5.10.12 |
CNDev |
CNDev提供Video Codec详细利用率信息 |
Driver >= v5.10.12 |
CNDev |
CNDev提供设备、驱动健康状态信息 |
Driver >= v5.10.12 |
CNToolkit-r3.5 对 Driver 版本的依赖说明
模块 |
特性描述 |
依赖 Driver 版本 |
CNVS |
mlulink适配支持MLU590设备 |
Driver >= v5.10.3 |
CNDev |
CNDev提供读写包错误计数和 非法访问错误计数信息 |
Driver >= v5.10.4 |
CNDev |
CNDev提供获取和设置设备SR-IOV模式状态信息 |
Driver >= v5.10.4 |
CNDev |
CNDev提供获取Parity Error信息接口 |
Driver >= v5.10.5 |
CNDev |
CNDev提供获取瞬时功耗信息接口 |
Driver >= v5.10.8 |
CNDev |
CNDev提供获取MLU Cluster频率信息接口 |
Driver >= v5.10.8 |
CNToolkit-r3.4 对 Driver 版本的依赖说明
模块 |
特性描述 |
依赖 Driver 版本 |
CNDev |
CNDev提供设备向量算力信息 |
Driver >= v5.5.0 |
CNToolkit-r3.3 对 Driver 版本的依赖说明
模块 |
特性描述 |
依赖 Driver 版本 |
CNDev |
CNDev提供全局内存信息 |
Driver >= v5.5.0 |
CNDev |
CNDev提供设备计算模式信息 |
Driver >= v5.5.0 |
CNToolkit-r3.2 对 Driver 版本的依赖说明
模块 |
特性描述 |
依赖 Driver 版本 |
CNDev |
CNDev提供获取设备算力信息接口 |
Driver >= v5.3.0 |
CNDev |
CNDev提供获取超温信息接口 |
Driver >= v5.3.0 |
CNDev |
CNDev提供获取性能下降原因信息接口 |
Driver >= v5.3.7 |
CNToolkit-r3.1 对 Driver 版本的依赖说明
模块 |
特性描述 |
依赖 Driver 版本 |
CNDev |
CNDev提供获取XID错误信息接口 |
Driver >= v5.2.0 |
CNDev |
CNDev提供获取XID错误信息开关状态接口 |
Driver >= v5.2.0 |
CNDev |
CNDev清除XID错误信息 |
Driver >= v5.2.0 |
CNDev |
CNDev设置XID错误信息开关状态 |
Driver >= v5.2.0 |
CNDev |
CNDev提供获取峰值功耗设置范围接口 |
Driver >= v5.2.0 |
CNPAPI |
CNPAPI Activity API支持Task Topo |
Driver >= v5.0.0 |
CNPAPI |
CNPAPI提供cnpapiActivityEnableLatencyTimestamps |
Driver >= v5.3.0 |
CNToolkit-r3.0 对 Driver 版本的依赖说明
模块 |
特性描述 |
依赖 Driver 版本 |
CNDrv |
Task Topo 功能 |
Driver >= v5.0.0 |
CNDrv |
Queue Capture 功能 |
Driver >= v5.0.0 |
CNDrv |
VMM 功能 |
Driver >= v5.0.0 |
CNDrv |
L2 驻留功能 |
Driver >= v5.0.0 |
CNPAPI |
CNPAPI Activity API支持HostFunc |
Driver >= v5.0.0 |
CNDev |
CNDev提供获取进程利用率信息接口 |
Driver >= v4.20.7 |
CNDev |
CNDev设置MLU频率接口新增设置档位 |
Driver >= v4.20.7 |
4.6. CNToolkit-r3.8 版本更新历史¶
CNToolkit (v3.8.3->3.8.4)
CNPAPI升级至 v3.8.2。
CNToolkit (v3.8.2->3.8.3)
CNAS升级至 v4.8.3。CNDrv升级至 v2.8.1。
CNToolkit (v3.8.1->3.8.2)
CNBin升级至 v1.8.1。CNAS升级至 v4.8.2。CNCC升级至 v4.8.2。CNDev升级至 v3.8.2。CNPerf升级至 v5.8.2。CNCodec_v3升级至 v1.8.1。
CNToolkit (v3.8.0->3.8.1)
CNAS升级至 v4.8.1。CNCC升级至 v4.8.1。CNDev升级至 v3.8.1。CNPAPI升级至 v3.8.1。CNPerf升级至 v5.8.1。
CNToolkit (v3.7.x->3.8.0)
优化《寒武纪 CNToolkit 安装升级使用手册》文档内容。
新增安装命令文档 install.txt 。
新增 CNBin 组件的 release note 。
4.6.1. 新增特性¶
CNBin (v1.8.0->v1.8.1)
无。
CNBin (v1.7.x->v1.8.0)
调整 NRAM/SRAM 内用户变量与栈变量的布局。
支持链接含有同名本地链接属性的函数的 CNBin。
提供固定变量在内存中排布顺序的功能。
支持链接时删除未被使用到的 device 侧函数。
支持解析
CNCC生成的 module id,支撑 Cambricon BANG C 混合编程模型的链接功能。支持 lazy 模块加载模式。
CNAS (v4.8.2->v4.8.3)
无。
CNAS (v4.8.1->v4.8.2)
无。
CNAS (v4.8.0->v4.8.1)
无。
CNAS (v4.7.x->v4.8.0)
重新编排指令手册。
scatter.vector和gather.vector指令支持源地址为GDRAM而目的地址为SRAM。
CNCC (v4.8.1->v4.8.2)
无。
CNCC (v4.8.0->v4.8.1)
无。
CNCC (v4.7.x->v4.8.0)
支持设备端的多模块链接功能。
细化
__bang_conv指令的使用约束。补齐了默认转数模式的标量和向量转数接口。
在
mtp_372架构上支持int32_t类型的_bang_div。优化
__bang_and,__bang_or,__bang_xor指令的性能。支持
int32_t类型的__bang_sumpool,__bang_ne_bitindex。支持
int8_t,uint8_t,int16_t,uint16_t,int32_t,uint32_t类型的__bang_argmax,__bang_argmin,__bang_sum,__bang_cycle_gt,__bang_cycle_le,__bang_cycle_ne,__bang_le,__bang_gt,__bang_gt_scalar,__bang_gt_bitindex,__bang_filter,__bang_filter_bitindex,__bang_count,__bang_count_bitindex。支持
int64_t和uint64_t类型的__bang_transpose,__bang_add,__bang_add_scalar,__bang_sub,__bang_sub_scalar,__bang_mul,__bang_mul_scalar,__bang_ne,__bang_ne_scalar,__bang_lt,__bang_lt_scalar,__bang_le,__bang_le_scalar,__bang_gt,__bang_gt_scalar,__bang_ge,__bang_ge_scalar,__bang_cycle_add,__bang_cycle_sub,__bang_cycle_mul,__bang_filter,__bang_filter_bitindex,__bang_uchar2int64,__bang_int322int64,__bang_int642int32,__gather,__scatter,__gather_async,__scatter_async。
Libdevice (v4.7.x->v4.8.0)
新增下列函数:
cn_vector_iota_s32,cn_vector_iota_s64,cn_vector_iota_f16,cn_vector_iota_f32,cn_vector_fast_trigamma_f32,cn_vector_fast_digamma_f32,cn_scalar_mod_vector_s8,cn_scalar_mod_vector_u8,cn_scalar_mod_vector_s16,cn_scalar_mod_vector_u16,cn_scalar_mod_vector_s32,cn_scalar_mod_vector_u32,cn_scalar_mod_vector_s64,cn_scalar_mod_vector_u64,cn_scalar_shift_left_vector_s8,cn_scalar_shift_left_vector_u8,cn_scalar_shift_left_vector_s16,cn_scalar_shift_left_vector_u16,cn_scalar_shift_left_vector_s32,cn_scalar_shift_left_vector_u32,cn_scalar_shift_left_vector_s64,cn_scalar_shift_left_vector_u64,cn_scalar_shift_right_logical_vector_s8,cn_scalar_shift_right_logical_vector_u8,cn_scalar_shift_right_logical_vector_s16,cn_scalar_shift_right_logical_vector_u16,cn_scalar_shift_right_logical_vector_s32,cn_scalar_shift_right_logical_vector_u32,cn_scalar_shift_right_logical_vector_s64,cn_scalar_shift_right_logical_vector_u64,cn_scalar_shift_right_arithmetic_vector_s8,cn_scalar_shift_right_arithmetic_vector_u8,cn_scalar_shift_right_arithmetic_vector_s16,cn_scalar_shift_right_arithmetic_vector_u16,cn_scalar_shift_right_arithmetic_vector_s32,cn_scalar_shift_right_arithmetic_vector_u32,cn_scalar_shift_right_arithmetic_vector_s64,cn_scalar_shift_right_arithmetic_vector_u64,cn_vector_cast_f16_to_s8,cn_scalar_cast_f16_to_s8,cn_vector_cast_f16_to_u8,cn_scalar_cast_f16_to_u8,cn_vector_cast_f16_to_s16,cn_scalar_cast_f16_to_s16,cn_vector_cast_f16_to_u16,cn_scalar_cast_f16_to_u16,cn_vector_cast_f16_to_s32,cn_scalar_cast_f16_to_s32,cn_vector_cast_f16_to_u32,cn_scalar_cast_f16_to_u32,cn_vector_cast_f16_to_s64,cn_scalar_cast_f16_to_s64,cn_vector_cast_f16_to_u64,cn_scalar_cast_f16_to_u64,cn_vector_cast_f32_to_s8,cn_scalar_cast_f32_to_s8,cn_vector_cast_f32_to_u8,cn_scalar_cast_f32_to_u8,cn_vector_cast_f32_to_s16,cn_scalar_cast_f32_to_s16,cn_vector_cast_f32_to_u16,cn_scalar_cast_f32_to_u16,cn_vector_cast_f32_to_s32,cn_scalar_cast_f32_to_s32,cn_vector_cast_f32_to_u32,cn_scalar_cast_f32_to_u32,cn_vector_cast_f32_to_s64,cn_scalar_cast_f32_to_s64,cn_vector_cast_f32_to_u64,cn_scalar_cast_f32_to_u64,cn_vector_cast_s8_to_f16,cn_scalar_cast_s8_to_f16,cn_vector_cast_u8_to_f16,cn_scalar_cast_u8_to_f16,cn_vector_cast_s16_to_f16,cn_scalar_cast_s16_to_f16,cn_vector_cast_u16_to_f16,cn_scalar_cast_u16_to_f16,cn_vector_cast_s32_to_f16,cn_scalar_cast_s32_to_f16,cn_vector_cast_u32_to_f16,cn_scalar_cast_u32_to_f16,cn_vector_cast_s64_to_f16,cn_scalar_cast_s64_to_f16,cn_vector_cast_u64_to_f16,cn_scalar_cast_u64_to_f16,cn_vector_cast_s8_to_f32,cn_scalar_cast_s8_to_f32,cn_vector_cast_u8_to_f32,cn_scalar_cast_u8_to_f32,cn_vector_cast_s16_to_f32,cn_scalar_cast_s16_to_f32,cn_vector_cast_u16_to_f32,cn_scalar_cast_u16_to_f32,cn_vector_cast_s32_to_f32,cn_scalar_cast_s32_to_f32,cn_vector_cast_u32_to_f32,cn_scalar_cast_u32_to_f32,cn_vector_cast_s64_to_f32,cn_scalar_cast_s64_to_f32,cn_vector_cast_u64_to_f32,cn_scalar_cast_u64_to_f32,cn_vector_cast_f64_to_f32,cn_vector_cast_f32_to_f16,cn_scalar_cast_f32_to_f16,cn_vector_eq_s64_outs64,cn_vector_eq_u64_outu64,cn_vector_ne_s64_outs64,cn_vector_ne_u64_outu64,cn_vector_lt_s64_outs64,cn_vector_lt_u64_outu64,cn_vector_le_s64_outs64,cn_vector_le_u64_outu64,cn_vector_gt_s64_outs64,cn_vector_gt_u64_outu64,cn_vector_ge_s64_outs64,cn_vector_ge_u64_outu64,cn_vector_eq_scalar_s64_outs64,cn_vector_eq_scalar_u64_outu64,cn_vector_ne_scalar_s64_outs64,cn_vector_ne_scalar_u64_outu64,cn_vector_lt_scalar_s64_outs64,cn_vector_lt_scalar_u64_outu64,cn_vector_le_scalar_s64_outs64,cn_vector_le_scalar_u64_outu64,cn_vector_gt_scalar_s64_outs64,cn_vector_gt_scalar_u64_outu64,cn_vector_ge_scalar_s64_outs64,cn_vector_ge_scalar_u64_outu64,cn_vector_cycle_eq_s64_outs64,cn_vector_cycle_eq_u64_outu64,cn_vector_cycle_ne_s64_outs64,cn_vector_cycle_ne_u64_outu64,cn_vector_cycle_lt_s64_outs64,cn_vector_cycle_lt_u64_outu64,cn_vector_cycle_le_s64_outs64,cn_vector_cycle_le_u64_outu64,cn_vector_cycle_gt_s64_outs64,cn_vector_cycle_gt_u64_outu64,cn_vector_cycle_ge_s64_outs64,cn_vector_cycle_ge_u64_outu64,cn_vector_cycle_add_s64,cn_vector_cycle_add_u64,cn_vector_cycle_sub_s64,cn_vector_cycle_sub_u64,cn_vector_cycle_mul_s64,cn_vector_cycle_mul_u64。提升下列函数的性能:
cn_vector_floor_f32,cn_scalar_floor_f32,cn_vector_cast_f32_to_s8_tz,cn_vector_cast_f32_to_s8,cn_vector_pow_f32,cn_vector_pow_f16,cn_vector_div_s8,cn_vector_div_u8,cn_vector_div_s16,cn_vector_div_u16,cn_vector_div_s32,cn_vector_div_u32,cn_vector_div_scalar_s8,cn_vector_div_scalar_u8,cn_vector_div_scalar_s16,cn_vector_div_scalar_u16,cn_vector_div_scalar_s32,cn_vector_div_scalar_u32,cn_scalar_div_vector_s8,cn_scalar_div_vector_u8,cn_scalar_div_vector_s16,cn_scalar_div_vector_u16,cn_scalar_div_vector_s32,cn_scalar_div_vector_u32,cn_vector_mod_s8,cn_vector_mod_u8,cn_vector_mod_s16,cn_vector_mod_u16,cn_vector_mod_s32,cn_vector_mod_u32,cn_vector_mod_scalar_s8,cn_vector_mod_scalar_u8,cn_vector_mod_scalar_s16,cn_vector_mod_scalar_u16,cn_vector_mod_scalar_s32,cn_vector_mod_scalar_u32,cn_vector_add_s64,cn_vector_add_u64,cn_vector_sub_s64,cn_vector_sub_u64,cn_vector_mul_s64,cn_vector_mul_u64,cn_vector_add_scalar_s64,cn_vector_add_scalar_u64,cn_vector_sub_scalar_s64,cn_vector_sub_scalar_u64,cn_vector_mul_scalar_s64,cn_vector_mul_scalar_u64。
CNGDB (v3.7.x->3.8.0)
优化next命令在device侧的执行速度。
当产生coredump的程序使用
-gline-directives-only编译时,支持在解析coredump时打印多层内联函数信息。支持在线查看异常现场。
Cambricon CNRTC (v0.6.x->v0.7.0)
支持不配置 PATH 环境变量的运行。
更新链接器。
llvm-mm (v2.4.x->v2.5.0)
更新
CNCC后端。
CNStudio (v1.0.0->v1.0.0)
无。
CNDrv (v2.8.0->v2.8.1)
无。
CNDrv (v2.7.x->v2.8.0)
支持 CNGDB 在 MLU Core 运行异常时,查看挂死现场信息。
MLU500 Series支持多核并行调试。优化 Module 加载模式为 LAZY 时的设备内存占用。
CNRT (v6.7.x->v6.8.0)
重构 Kernel 下发流程以支持 Lazy Module Load 特性。
CNVS (v0.13.x->v0.14.0)
matmul performance 插件增加
correct_check参数,用于控制是否进行矩阵计算结果正确性检查。pcie 插件增加所有 subtests 对
repeat_num、data_size参数的支持。pcie 插件删除
test_pinned、test_unpinned、test_p2p_on参数,改为每个 subtest 都支持 subtest_on 作为该 subtest 开关。
CNDev (v3.8.1->v3.8.2)
无。
CNDev (v3.8.0->v3.8.1)
无。
CNDev (v3.7.x->v3.8.0)
接口新增CNDEV_VERSION_6版本定义,用于支持MLU-Link线缆状态、MLU-Link端口的PFC包和CNP包统计。
新增
cndevMLULinkCableStateEnum_t枚举值。修改
cndevMLULinkStatus_t结构体,新增cableState参数获取MLU-Link线缆状态信息。修改
cndevMLULinkCounter_t结构体,用于获取MLU-Link端口的PFC包和CNP包统计。修改
cndevMLULinkCounter_t结构体和cndevMLULinkCounterEnum_t枚举,用于获取MLU-Link端口的PFC包和CNP包统计。
CNPerf (v5.8.1->v5.8.2)
无。
CNPerf (v5.8.0->v5.8.1)
无。
CNPerf (v5.7.x->v5.8.0)
CNPerf timechart命令新增
atomic_operation,memcpy,memset任务的fallback信息显示。
CNPAPI (v3.8.1->v3.8.2)
无。
CNPAPI (v3.8.0->v3.8.1)
无。
CNPAPI (v3.7.x->v3.8.0)
无。
CNPX (v1.1.0->v1.1.0)
无。
CNCodec (v1.14.3->v1.14.3)
无。
CNCodec_v3 (v1.8.0->v1.8.1)
无。
CNCodec_v3 (v1.7.x->v1.8.0)
在编码设备能力属性
cncodecEncCaps_t中增加video_10bit_supported,用户可以用来判断板卡是否支持视频10bit编码。
4.6.2. 废弃特性¶
无。
4.6.3. 修复问题¶
CNBin (v1.8.0->v1.8.1)
修复某些特定类型指令反汇编解析有误的问题。
CNBin (v1.7.x->v1.8.0)
修复
cnlink在链接fatbin时若无--create选项会报错的问题。修复在 Tinycore 架构中片上内存占用大小计算错误的问题。
修复链接同名未初始化变量的
CNBin时地址计算错误的问题。修复
cnlink在接受特定命令行选择组合时程序崩溃的问题。修复同时存在地址空间为 NRAM 和 LDRAM 的带初始化的数据,且这些数据的地址对齐大小不相同时,有可能会出错的问题。
CNAS (v4.8.2->v4.8.3)
修复某些情况下LICM优化错误。
修复某些情况下
setp.vmr指令化简错误。
CNAS (v4.8.1->v4.8.2)
修复
div.gpr和rem.gpr指令在u48和s48类型下化简错误。修复Stream Active INstructions文档描述错误。
修复LICM优化错误导致编译失败。
修复
conv指令某些情况下MD计算错误。
CNAS (v4.8.0->v4.8.1)
修复寄存器溢出错误。
CNAS (v4.7.x->v4.8.0)
修复
tc_506架构下寄存器分配错误。修复
--generate-line-info编译选项导致编译失败。修复
--link编译错误。修复若干VVR编程模式下指令化简和优化的错误。
修复debug_line生成内联信息错误。
修复
st.rdram指令优化错误。修复寄存器生命周期分析错误。
修复谓词寄存器溢出错误。
CNCC (v4.8.1->v4.8.2)
修复了寄存器分配错误的问题。
CNCC (v4.8.0->v4.8.1)
修复了嵌套循环生成错误指令的问题。
CNCC (v4.7.x->v4.8.0)
修复了
std::ceilf,std::floorf,std::nearbyint,std::truncf的精度问题。修复了文档中关于
__bang_argmax和__bang_argmin输出结果的描述错误。修复了特殊情况下
printf被优化的问题。修复了程序同时存在带有不同对齐属性的初始化向量时,初始化值有可能出错的问题。
Libdevice (v4.7.x->v4.8.0)
无。
CNGDB (v3.7.x->3.8.0)
修复4个未识别的错误码解析。
Cambricon CNRTC (v0.6.x->v0.7.0)
无。
llvm-mm (v2.4.x->v2.5.0)
无。
CNStudio (v1.0.0->v1.0.0)
无。
CNDrv (v2.8.0->v2.8.1)
修复 CNGDB 在解析 Coredump 文件时可能异常挂死的问题。
修复在小于5.10.14版本驱动时,内存拷贝接口可能失败的问题。
CNDrv (v2.7.x->v2.8.0)
修复 TaskTopo 中 Memcpy 节点在传入拷贝方向参数为非0的情况下,可能出现错误的问题。
修复驱动版本不匹配时,返回值从原来的
CN_OPS_ERROR_NOT_PERMITTED修改为CN_ERROR_SYSTEM_DRIVER_MISMATCH。修复 Coredump 解析时访问错误 SRAM 地址未报错的问题。
修复错误码
CN_ERROR_ECC_UNCORRECTABLE值错误的问题。
CNRT (v6.7.x->v6.8.0)
无。
CNVS v0.13.x->v0.14.0)
修复 rformance 参数
kernel_height、kernel_width范围错误的问题。
CNDev (v3.8.1->v3.8.2)
修复
cndevGetXidErrorString接口返回有误问题。
CNDev (v3.8.0->v3.8.1)
修改创建或删除MLU Instance导致接口出错问题。
CNDev (v3.7.x->v3.8.0)
无。
CNPerf (v5.8.1->v5.8.2)
修复使用CNPerf record命令同时使用
--host_backtrace与--host_cpuctxsw参数时可能丢失追踪数据的问题。修复使用CNPerf record命令可能出现 Incompatible pipe bytes: Bad file descriptor 错误的问题。
修复使用CNPerf timechart命令
--duration参数时,设置的时间戳大于2147毫秒时失效的问题。修复使用CNPerf record命令
--pmu参数时可能崩溃或丢失追踪数据的问题。
CNPerf (v5.8.0->v5.8.1)
修复使用CNPerf record命令
--host_backtrace或--host_cpuctxsw参数时可能丢失追踪数据的问题。 修复使用CNPerf timechart命令生成设备上的 cnpx range 信息过慢的问题。 修复使用CNPerf record命令--host_backtrace参数时后处理可能崩溃的问题。
CNPerf (v5.7.x->v5.8.0)
修复使用CNPerf record命令后可能在当前目录下生成
perf_event_data空文件夹的问题。修复使用CNPerf record命令后可能出现
Incompatible pipe bytes: Bad address错误的问题。修复CNPerf在驱动版本低于5.10.8时,无法正确获取功耗的问题。
修复用户程序直接链接 libdltrace.so 运行时抛异常退出的问题。
CNPAPI (v3.8.1->v3.8.2)
修复了开启
CNPAPI_ACTIVITY_TYPE_KERNEL抓取后,cnInvokeKernel的执行时间可能会大幅度波动的问题。
CNPAPI (v3.8.0->v3.8.1)
修复CNPAPI Activity API会丢失Memcpy的问题。丢失的Memcpy由
cnrtHostMalloc生成的内存参与,任务类型为cnrtTaskTopoNodeTypeMemcpy。
CNPAPI (v3.7.x->v3.8.0)
修复CNPAPI Activity API在5.10.13以下版本驱动上运行会卡死的问题。
CNPX (v1.1.0->v1.1.0)
无。
CNCodec (v1.14.3->v1.14.3)
无。
CNCodec_v3 (v1.8.0->v1.8.1)
修复H.264码流VUI数据不完整导致无法解码问题。
CNCodec_v3 (v1.7.x->v1.8.0)
无。
4.6.4. 遗留问题¶
CNCC (v4.8.2)
Cambricon BANG C 的 Host 和 Device 代码中不支持 packed 属性修饰 struct 或 class 数据类型,如果用 packed 修饰会被 CNCC 忽略。
__mlu_global__函数中不支持 iostream,当用户的 Kernel 函数为可变模板函数时,请勿使用 iostream 打印变长参数,参见$NEUWARE_HOME/samples/BANG/bang-c++/block/variadic_template_kernel。
CNGDB (v3.8.0)
使用内联函数可能会导致调试信息不准或丢失;
在
MLU300 Series板卡上暂时无法使用 core dump 在线解析功能;当程序还未运行起来时暂时不支持 watch 全局变量;
同时 watch 两个以上的点可能会有漏报的现象;
Union 任务上使用 watch 会误报一些错误信息提示,不影响功能使用。
ctrl-c 打断程序运行后,可能无法 continue 继续调试,需要 rerun 重新开始调试。
单步跳出kernel函数会导致不确定行为,建议使用continue替代。
watch ram上的变量时,若该变量被多次改变,可能只会显示一次。
CNStudio (v1.0.0)
Cambricon BANG C中
taskDim,taskId等特殊关键字语法解析中报异常。
CNPerf (v5.8.2)
特定情况下record追踪多进程程序报错。
现象:
若被追踪程序在fork后的子进程中未调用exec系列函数前,直接或间接调用CNDrv库函数会失败。
原因:
CNPerf初始化时会初始化CNPAPI,CNPAPI会初始化CNDrv。CNDrv初始化后不支持在fork后但不调用exec使用CNDrv相关资源。
影响:
不能追踪某些多进程程序。
规避措施:
无规避措施。
CNPAPI (v3.8.2)
CNPAPI Activity API无法获取
cnMemcpyAsync_V2/cnMemcpyDtoHAsync_V2/cnMemcpyHoDAsync_V2下发的memcpy activity。现象:
当用户调用
cnMemcpyAsync_V2/cnMemcpyDtoHAsync_V2/cnMemcpyHoDAsync_V2接口时,CNPAPI无法提供对应的cnpapiActivityMemcpy。原因:
当前已发布的驱动版本无法支持。
影响:
CNPAPI Activity API会丢失数据。
规避措施:
需要Driver 5.10.13及以上版本,CNPAPI才支持获取
cnMemcpyAsync_V2/cnMemcpyDtoHAsync_V2/cnMemcpyHoDAsync_V2下发的memcpy activity。MLU590上PMU API中DRAM部分数据为0。
现象:
MLU590上PMU API中部分dram的所有相关counter读出来的值的都是0。
原因:
当前已发布的驱动版本无法支持。
影响:
无法读取到部分dram的数据。
规避措施:
需要Driver 5.3.14及以上版本,该接口才可使用。
cnpapiPmuRelease接口不可用。
现象:
使用cnpapiPmuRelease接口后,无法释放资源,并可能发生未知问题。
原因:
当前已发布的驱动版本无法支持。
影响:
无法使用cnpapiPmuRelease接口。
规避措施:
需要Driver 4.20.0及以上版本,该接口才可使用。
CNPAPI Callback API 对
cnmlCreateNdConvParam、cnmlCreateNdConvParam_V2、cnmlCreateNdPoolOpParam的返回值支持有误。现象:
使用 CNPAPI Callback API 跟踪
cnmlCreateNdConvParam、cnmlCreateNdConvParam_V2、cnmlCreateNdPoolOpParam,提供的cnpapi_CallbackData中functionReturnValue字段指向值固定为0。原因:
当前已发布的CNML无法支持。
影响:
无法使用 CNPAPI Callback API 跟踪
cnmlCreateNdConvParam、cnmlCreateNdConvParam_V2、cnmlCreateNdPoolOpParam的返回值。规避措施:
无规避措施。