4. 发布公告

4.1. 发布包支持的Linux平台

表 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. 组件版本号

表 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 的。

表 4.3 MLU平台对应的硬件型号

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 版本。

表 4.4 CNToolkit 和 Driver 的 LTS 维护状态

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. 组件依赖关系

表 4.5 组件依赖关系

组件版本

依赖组件版本

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 版本的依赖说明

表 4.6 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 版本的依赖说明

表 4.7 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 版本的依赖说明

表 4.8 CNToolkit-r3.6 新特性对 Driver 最小依赖说明

模块

特性描述

依赖 Driver 版本

CNDrv

新增异步拷贝类 v2 接口

Driver >= v5.10.13

CNDrv

优化 cnCtxSync 接口时间

Driver >= v5.10.13

CNDrv

优化设备枚举方法,保证与 CNDEV 设备顺序一致

Driver >= v5.10.13

CNDrv

新增 cnTaskTopoUpload 接口

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 版本的依赖说明

表 4.9 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 版本的依赖说明

表 4.10 CNToolkit-r3.4 新特性对 Driver 最小依赖说明

模块

特性描述

依赖 Driver 版本

CNDev

CNDev提供设备向量算力信息

Driver >= v5.5.0

  • CNToolkit-r3.3 对 Driver 版本的依赖说明

表 4.11 CNToolkit-r3.3 新特性对 Driver 最小依赖说明

模块

特性描述

依赖 Driver 版本

CNDev

CNDev提供全局内存信息

Driver >= v5.5.0

CNDev

CNDev提供设备计算模式信息

Driver >= v5.5.0

  • CNToolkit-r3.2 对 Driver 版本的依赖说明

表 4.12 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 版本的依赖说明

表 4.13 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 版本的依赖说明

表 4.14 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.vectorgather.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_tuint64_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_s32cn_vector_iota_s64cn_vector_iota_f16cn_vector_iota_f32cn_vector_fast_trigamma_f32cn_vector_fast_digamma_f32cn_scalar_mod_vector_s8cn_scalar_mod_vector_u8cn_scalar_mod_vector_s16cn_scalar_mod_vector_u16cn_scalar_mod_vector_s32cn_scalar_mod_vector_u32cn_scalar_mod_vector_s64cn_scalar_mod_vector_u64cn_scalar_shift_left_vector_s8cn_scalar_shift_left_vector_u8cn_scalar_shift_left_vector_s16cn_scalar_shift_left_vector_u16cn_scalar_shift_left_vector_s32cn_scalar_shift_left_vector_u32cn_scalar_shift_left_vector_s64cn_scalar_shift_left_vector_u64cn_scalar_shift_right_logical_vector_s8cn_scalar_shift_right_logical_vector_u8cn_scalar_shift_right_logical_vector_s16cn_scalar_shift_right_logical_vector_u16cn_scalar_shift_right_logical_vector_s32cn_scalar_shift_right_logical_vector_u32cn_scalar_shift_right_logical_vector_s64cn_scalar_shift_right_logical_vector_u64cn_scalar_shift_right_arithmetic_vector_s8cn_scalar_shift_right_arithmetic_vector_u8cn_scalar_shift_right_arithmetic_vector_s16cn_scalar_shift_right_arithmetic_vector_u16cn_scalar_shift_right_arithmetic_vector_s32cn_scalar_shift_right_arithmetic_vector_u32cn_scalar_shift_right_arithmetic_vector_s64cn_scalar_shift_right_arithmetic_vector_u64cn_vector_cast_f16_to_s8cn_scalar_cast_f16_to_s8cn_vector_cast_f16_to_u8cn_scalar_cast_f16_to_u8cn_vector_cast_f16_to_s16cn_scalar_cast_f16_to_s16cn_vector_cast_f16_to_u16cn_scalar_cast_f16_to_u16cn_vector_cast_f16_to_s32cn_scalar_cast_f16_to_s32cn_vector_cast_f16_to_u32cn_scalar_cast_f16_to_u32cn_vector_cast_f16_to_s64cn_scalar_cast_f16_to_s64cn_vector_cast_f16_to_u64cn_scalar_cast_f16_to_u64cn_vector_cast_f32_to_s8cn_scalar_cast_f32_to_s8cn_vector_cast_f32_to_u8cn_scalar_cast_f32_to_u8cn_vector_cast_f32_to_s16cn_scalar_cast_f32_to_s16cn_vector_cast_f32_to_u16cn_scalar_cast_f32_to_u16cn_vector_cast_f32_to_s32cn_scalar_cast_f32_to_s32cn_vector_cast_f32_to_u32cn_scalar_cast_f32_to_u32cn_vector_cast_f32_to_s64cn_scalar_cast_f32_to_s64cn_vector_cast_f32_to_u64cn_scalar_cast_f32_to_u64cn_vector_cast_s8_to_f16cn_scalar_cast_s8_to_f16cn_vector_cast_u8_to_f16cn_scalar_cast_u8_to_f16cn_vector_cast_s16_to_f16cn_scalar_cast_s16_to_f16cn_vector_cast_u16_to_f16cn_scalar_cast_u16_to_f16cn_vector_cast_s32_to_f16cn_scalar_cast_s32_to_f16cn_vector_cast_u32_to_f16cn_scalar_cast_u32_to_f16cn_vector_cast_s64_to_f16cn_scalar_cast_s64_to_f16cn_vector_cast_u64_to_f16cn_scalar_cast_u64_to_f16cn_vector_cast_s8_to_f32cn_scalar_cast_s8_to_f32cn_vector_cast_u8_to_f32cn_scalar_cast_u8_to_f32cn_vector_cast_s16_to_f32cn_scalar_cast_s16_to_f32cn_vector_cast_u16_to_f32cn_scalar_cast_u16_to_f32cn_vector_cast_s32_to_f32cn_scalar_cast_s32_to_f32cn_vector_cast_u32_to_f32cn_scalar_cast_u32_to_f32cn_vector_cast_s64_to_f32cn_scalar_cast_s64_to_f32cn_vector_cast_u64_to_f32cn_scalar_cast_u64_to_f32cn_vector_cast_f64_to_f32cn_vector_cast_f32_to_f16cn_scalar_cast_f32_to_f16cn_vector_eq_s64_outs64cn_vector_eq_u64_outu64cn_vector_ne_s64_outs64cn_vector_ne_u64_outu64cn_vector_lt_s64_outs64cn_vector_lt_u64_outu64cn_vector_le_s64_outs64cn_vector_le_u64_outu64cn_vector_gt_s64_outs64cn_vector_gt_u64_outu64cn_vector_ge_s64_outs64cn_vector_ge_u64_outu64cn_vector_eq_scalar_s64_outs64cn_vector_eq_scalar_u64_outu64cn_vector_ne_scalar_s64_outs64cn_vector_ne_scalar_u64_outu64cn_vector_lt_scalar_s64_outs64cn_vector_lt_scalar_u64_outu64cn_vector_le_scalar_s64_outs64cn_vector_le_scalar_u64_outu64cn_vector_gt_scalar_s64_outs64cn_vector_gt_scalar_u64_outu64cn_vector_ge_scalar_s64_outs64cn_vector_ge_scalar_u64_outu64cn_vector_cycle_eq_s64_outs64cn_vector_cycle_eq_u64_outu64cn_vector_cycle_ne_s64_outs64cn_vector_cycle_ne_u64_outu64cn_vector_cycle_lt_s64_outs64cn_vector_cycle_lt_u64_outu64cn_vector_cycle_le_s64_outs64cn_vector_cycle_le_u64_outu64cn_vector_cycle_gt_s64_outs64cn_vector_cycle_gt_u64_outu64cn_vector_cycle_ge_s64_outs64cn_vector_cycle_ge_u64_outu64cn_vector_cycle_add_s64cn_vector_cycle_add_u64cn_vector_cycle_sub_s64cn_vector_cycle_sub_u64cn_vector_cycle_mul_s64cn_vector_cycle_mul_u64

    • 提升下列函数的性能:

      cn_vector_floor_f32cn_scalar_floor_f32cn_vector_cast_f32_to_s8_tzcn_vector_cast_f32_to_s8cn_vector_pow_f32cn_vector_pow_f16cn_vector_div_s8cn_vector_div_u8cn_vector_div_s16cn_vector_div_u16cn_vector_div_s32cn_vector_div_u32cn_vector_div_scalar_s8cn_vector_div_scalar_u8cn_vector_div_scalar_s16cn_vector_div_scalar_u16cn_vector_div_scalar_s32cn_vector_div_scalar_u32cn_scalar_div_vector_s8cn_scalar_div_vector_u8cn_scalar_div_vector_s16cn_scalar_div_vector_u16cn_scalar_div_vector_s32cn_scalar_div_vector_u32cn_vector_mod_s8cn_vector_mod_u8cn_vector_mod_s16cn_vector_mod_u16cn_vector_mod_s32cn_vector_mod_u32cn_vector_mod_scalar_s8cn_vector_mod_scalar_u8cn_vector_mod_scalar_s16cn_vector_mod_scalar_u16cn_vector_mod_scalar_s32cn_vector_mod_scalar_u32cn_vector_add_s64cn_vector_add_u64cn_vector_sub_s64cn_vector_sub_u64cn_vector_mul_s64cn_vector_mul_u64cn_vector_add_scalar_s64cn_vector_add_scalar_u64cn_vector_sub_scalar_s64cn_vector_sub_scalar_u64cn_vector_mul_scalar_s64cn_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_numdata_size 参数的支持。

    • pcie 插件删除 test_pinnedtest_unpinnedtest_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_operationmemcpymemset 任务的 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.gprrem.gpr 指令在 u48s48 类型下化简错误。

    • 修复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_heightkernel_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中 taskDimtaskId 等特殊关键字语法解析中报异常。

  • 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 对 cnmlCreateNdConvParamcnmlCreateNdConvParam_V2cnmlCreateNdPoolOpParam 的返回值支持有误。

      现象:

      使用 CNPAPI Callback API 跟踪 cnmlCreateNdConvParamcnmlCreateNdConvParam_V2cnmlCreateNdPoolOpParam,提供的 cnpapi_CallbackDatafunctionReturnValue 字段指向值固定为0。

      原因:

      当前已发布的CNML无法支持。

      影响:

      无法使用 CNPAPI Callback API 跟踪 cnmlCreateNdConvParamcnmlCreateNdConvParam_V2cnmlCreateNdPoolOpParam 的返回值。

      规避措施:

      无规避措施。