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.7.1

x86_64、aarch64

Cloud、Edge

CNAS

v4.7.2

x86_64、aarch64

Cloud

CNCC

v4.7.2

x86_64、aarch64

Cloud

CNCodec

v1.14.3

x86_64、aarch64

Cloud、Edge

CNCodec3

v1.7.1

x86_64

Cloud

CNDev

v3.7.0

x86_64、aarch64

Cloud、Edge

CNDrv

v2.7.1

x86_64、aarch64

Cloud、Edge

CNGDB

v3.7.2

x86_64

Cloud、Edge

CNPAPI

v3.7.1

x86_64、aarch64

Cloud、Edge

CNPerf

v5.7.2

x86_64、aarch64

Cloud、Edge

CNRT

v6.7.0

x86_64、aarch64

Cloud、Edge

Cambricon CNRTC

v0.6.0

x86_64、aarch64

Cloud

CNStudio

v1.0.0

x86_64

Cloud

LLVM-MM

v2.4.0

x86_64

Cloud

CNPX

v1.1.0

x86_64、aarch64

Cloud、Edge

CNVS

v0.13.1

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-r3.7 新特性对 Driver 最小依赖变更 中明确特性简介和推荐 Driver 版本。

表 4.4 CNToolkit 和 Driver 的 LTS 维护状态

CNToolkit 版本

Driver 最小依赖

CNToolkit 分支维护状态

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

STSB 支持 MLUv02/v03/v05 系列产品

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.7.1

N/A

CNAS v4.7.2

CNBin >= v1.7.0

CNCC v4.7.2

CNAS >= v4.7.0

CNCodec v1.14.3

Driver >= v4.20.0、CNDrv >= v1.8.0

CNCodec3 v1.7.1

Driver >= v5.0.0、CNDrv >= v2.7.0 CNRT >= v6.7.0

CNDev v3.7.0

Driver >= v5.0.0

CNDrv v2.7.1

Driver >= v5.0.0、CNBin >= v1.7.0

CNGDB v3.7.2

CNDrv >= v2.7.0

CNPAPI v3.7.1

Driver >= v5.0.0

CNPerf v5.7.2

CNDev >= v3.7.0、CNPAPI >= v3.7.0 CNRT >= v6.7.0、CNDrv >= v2.7.0 CNBin >= v1.7.0

CNRT v6.7.0

CNDrv >= v2.7.0

Cambricon CNRTC v0.6.0

CNCC >= v4.0.0、CNDrv >= 2.0.0

CNStudio v1.0.0

N/A

LLVM-MM v2.4.0

CNDRV >= v2.7.0、 CNAS >= v4.7.0 CNRTC >= v0.6.0

CNPX v1.1.0

CNPAPI >= v3.7.0

CNVS v0.13.1

CNDev >= v3.7.0、CNDrv >= v2.7.0 CNRT >= v6.7.0

4.5. CNToolkit-r3.7 新特性对 Driver 最小依赖变更

若非下表中明确说明,CNToolkit r3.7 中各个组件新增功能和性能依赖的 Driver 最小版本均为 v5.0.0。

CNToolkit-Cloud 源依赖包安装时会检测当前环境的 Driver 版本是否满足 Driver >= 5.0

表 4.6 CNToolkit 新特性对 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

4.6. CNToolkit-r3.7 版本更新历史

  • CNToolkit (v3.7.1->3.7.2)

    • 无。

  • CNToolkit (v3.7.0->3.7.1)

    • 无。

  • CNToolkit (v3.6.x->3.7.0)

    • CNBin 软件包新增 cnlink 二进制链接工具。

4.6.1. 新增特性

  • CNAS (v4.7.1->v4.7.2)

    • 无。

  • CNAS (v4.7.0->v4.7.1)

    • 无。

  • CNAS (v4.6.x->v4.7.0)

    • 补充部分指令 .io0.io1 修饰符支持。

    • 删除Surpass类指令和 fuse.nram 指令的 async 修饰符。

    • tc_303tc_506 平台支持 NRAM 变量初始化。

    • sync 指令增加 .pgld.cgld 修饰符支持。

    • 支持 has0.vmrhas1.vmr 指令。

    • 添加若干前端检查。

  • CNCC (v4.7.1->v4.7.2)

    • 无。

  • CNCC (v4.7.0->v4.7.1)

    • 无。

  • CNCC (v4.6.x->v4.7.0)

    • __memcpy 新增语义 segnum 参数有效范围的检查。

    • 一维、二维和三维 __nramset, __nramset_async, __bang_write_value, __memset_nram, __sramset, __sramset_async, __ldramset, __ldramset_async, __gdramset, __gdramset_async 补齐数据类型。

    • mtp_372 及后续架构上默认开启标量 48 位乘法、除法和取余功能。

    • 废弃 disable-float-folding 选项。

    • 一维原子操作指令补齐数据类型支持。

    • __bang_mirror, __bang_pad, __bang_popcnt 补齐数据类型支持。

    • __bang_filter_bitindex, __bang_count_bitindex__bang_fusion 支持 int8_t, int16_t, int32_t 数据类型。

    • __load_nram, __load_sram, __load_ldram, __load_gdram, __store_nram, __store_sram, __store_ldram__store_gdram 新增 int64_tuint64_t 数据类型支持。

    • 优化类和结构体构造函数、拷贝构造函数性能。

  • Libdevice (v4.7.0->v4.7.2)

    • 无。

  • Libdevice (v4.6.x->v4.7.0)

    • 新增下列函数:

      cn_vector_mulh_s32 , cn_vector_mulh_u32 , cn_vector_eq_scalar_s64 , cn_vector_eq_scalar_u64 , cn_vector_ne_scalar_s64 , cn_vector_ne_scalar_u64 , cn_vector_lt_scalar_s64 , cn_vector_lt_scalar_u64 , cn_vector_le_scalar_s64 , cn_vector_le_scalar_u64 , cn_vector_gt_scalar_s64 , cn_vector_gt_scalar_u64 , cn_vector_ge_scalar_s64 , cn_vector_ge_scalar_u64 .

    • 提升下列函数的性能:

      cn_vector_add_s64 , cn_vector_add_u64 , cn_vector_add_scalar_s64 , cn_vector_add_scalar_u64 , cn_vector_sub_s64 , cn_vector_sub_u64 , cn_vector_sub_scalar_s64 , cn_vector_sub_scalar_u64 , cn_scalar_sub_vector_s64 , cn_scalar_sub_vector_u64 , cn_vector_mul_s64 , cn_vector_mul_u64 , cn_vector_mul_scalar_s64 , cn_vector_mul_scalar_u64 , cn_vector_div_s8 , cn_vector_div_u8 , cn_vector_div_scalar_s8 , cn_vector_div_scalar_u8 , cn_scalar_div_vector_s8 , cn_scalar_div_vector_u8 , cn_vector_div_s64 , cn_vector_div_u64 , cn_vector_div_scalar_s64 , cn_vector_div_scalar_u64 , cn_scalar_div_vector_s64 , cn_scalar_div_vector_u64 , cn_vector_mod_s8 , cn_vector_mod_u8 , cn_vector_mod_scalar_s8 , cn_vector_mod_scalar_u8 , cn_vector_mod_s64 , cn_vector_mod_u64 , cn_vector_mod_scalar_s64 , cn_vector_mod_scalar_u64 , cn_vector_mod_f32 , cn_vector_mod_f16 , cn_vector_max_scalar_s64 , cn_vector_max_scalar_u64 , cn_vector_max_scalar_f32 , cn_vector_max_scalar_f16 , cn_vector_nan_max_scalar_f32 , cn_vector_nan_max_scalar_f16 , cn_vector_min_scalar_s64 , cn_vector_min_scalar_u64 , cn_vector_min_scalar_f32 , cn_vector_min_scalar_f16 , cn_vector_nan_min_scalar_f32 , cn_vector_nan_min_scalar_f16 , cn_vector_clamp_scalar_s64 , cn_vector_clamp_scalar_u64 , cn_vector_shift_left_scalar_s64 , cn_vector_shift_left_scalar_u64 , cn_vector_shift_right_logical_scalar_s64 , cn_vector_shift_right_logical_scalar_u64 , cn_vector_shift_right_arithmetic_scalar_s64 , cn_vector_shift_right_arithmetic_scalar_u64 , cn_vector_cast_f32_to_f64 , cn_vector_cast_f64_to_f32_rn .

    • 扩大 cn_vector_digamma_f32cn_scalar_digamma_f32 函数的输入范围。

  • CNGDB (v3.7.1->3.7.2)

    • 无。

  • CNGDB (v3.7.0->3.7.1)

    • 无。

  • CNGDB (v3.6.x->3.7.0)

    • 当产生coredump的程序使用 -gline-directives-only 编译时,支持在解析coredump文件时打印当前内联函数调用点的位置。

    • 解析coredump支持打印Host name、Host IP、Device BDF和Device UUID。

    • 解析coredump使用cngdb core-param打印参数时支持根据参数类型打印具体的数值。

    • 支持多核调试模式。

    • public版cngdb解析coredump文件支持打印更详细的错误码。

  • Cambricon CNRTC (v0.6.0->v0.6.0)

    • 无。

  • llvm-mm (v2.3.x->v2.4.0)

    • 更新 CNCC 后端。

  • CNStudio (v1.0.0->v1.0.0)

    • 无。

  • CNDrv (v2.7.0->v2.7.1)

    • 无。

  • CNDrv (v2.6.x->v2.7.0)

    • 新增以下PCIE设备属性:

      • CN_DEVICE_ATTRIBUTE_PCI_MPS

      • CN_DEVICE_ATTRIBUTE_PCI_MRRS

    • Coredump 文件中新增设备 BDF 号以及主机 IP 等信息。

    • 优化错误码描述。

    • 支持 CN_MODULE_LOADING 环境变量,通过赋值为 LAZY 或 EAGER 控制 Module 加载到设备的时机,默认为 EAGER 加载模式。

  • CNRT (v6.6.x->v6.7.0)

    • cnrtDeviceAttr_t 中新增以下枚举成员:

      • cnrtAttrIPCNotifierSupported

  • CNVS (v0.13.0->v0.13.1)

    • 无。

  • CNVS (v0.12.x->v0.13.0)

    • peak_performance插件支持 Driver v4.20。

    • pcie插件 h2d、d2h 测例带宽修正。

    • 修改pcie插件的memcpy_type参数的默认值为sync。

    • peak_performance 插件支持 int8 类型稀疏矩阵卷积网络。

    • matmul插件根据板卡型号不同,设置不同的默认值。

    • 命令行新增 -y 选项,在cnvs_default_config目录下生成不同板卡型号的最佳配置文件。

  • CNDev (v3.6.x->v3.7.0)

    • 修改 cndevXidEnum_t 枚举值,新增多种xid error类型。

    • 修改 cndevNameEnum_t 枚举值。

    • 新增 cndevMimMode_t 结构体,用于获取MLU设备MIM模式状态。

    • 新增 cndevGetMimMode 接口,用于获取MLU设备MIM模式状态。

    • 新增 cndevSetMimMode 接口,用于设置MLU设备MIM模式状态。

    • 新增 cndevMluInstance_t MLU Instance设备句柄。

    • 新增 cndevMLUInstanceProfileEnum_t 枚举值,MLU Instance Profile信息。

    • 新增 cndevMluInstancePlacement_t 结构体,用于获取MLU Instance设备位置信息。

    • 新增 cndevMluInstanceProfileInfo_t 结构体,用于获取MLU Instance设备概述信息。

    • 新增 cndevMluInstanceInfo_t 结构体,用于获取MLU Instance设备详细信息。

    • 新增 cndevCreateMluInstance 接口,用于创建MLU Instance。

    • 新增 cndevCreateMluInstanceWithPlacement 接口,用于创建MLU Instance在指定位置。

    • 新增 cndevMluInstanceDestroy 接口,用于销毁MLU Instance。

    • 新增 cndevGetMluInstanceProfileInfo 接口,用于获取MLU Instance设备概述信息。

    • 新增 cndevGetMluInstancePossiblePlacements 接口,用于获取MLU Instance可创建的指定位置。

    • 新增 cndevGetMluInstanceRemainingCapacity 接口,用于获取MLU Instance可创建剩余数量。

    • 新增 cndevGetMaxMluInstanceCount 接口,用于获取MLU Instance可创建最大数量。

    • 新增 cndevGetMluInstanceInfo 接口,用于获取MLU Instance详细信息。

    • 新增 cndevGetAllMluInstanceInfo 接口,用于获取全部MLU Instance详细信息。

    • 新增 cndevGetMluInstanceByIndexcndevGetMluInstanceById 接口,用于获取MLU Instance句柄。

    • 新增 cndevGetDeviceHandleFromMluInstanceHandle 接口,通过MLU Instance句柄获取MLU父设备句柄。

    • 新增 cndevGetMluInstance 接口,通过指定ProfileID获取MLU Instance句柄。

    • 新增 cndevGetMluInstanceId 接口,用于获取MLU Instance的Instance ID信息。

    • 修改 cndevFrequencyInfo_t 结构体,用于获取MLU Frequency 默认工作频率和频率范围信息。

  • CNPerf (v5.7.1->v5.7.2)

    • 无。

  • CNPerf (v5.7.0->v5.7.1)

    • 无。

  • CNPerf (v5.6.x->v5.7.0)

    • CNPerf timechart命令新增 atomic_operationmemcpymemset 任务的 fallback 信息显示。

  • CNPAPI (v3.7.0->v3.7.1)

    • 无。

  • CNPAPI (v3.6.x->v3.7.0)

    • cnpapiActivityMemcpycnpapiActivityMemcpyPtoPcnpapiActivityMemsetcnpapiActivityAtomicOperation 结构体新增 fallback_host 成员,详细说明参见对应结构体定义。

    • CNPAPI Activity API新增 CNPAPI_ACTIVITY_TYPE_CALLBACK_API, 用于获取根据CNPAPI Callback API使能状态生成的 cnpapiActivityAPI

  • CNPX (v1.1.0->v1.1.0)

    • 无。

  • CNCodec (v1.14.3->v1.14.3)

    • 无。

  • CNCodec_v3 (v1.7.0->v1.7.1)

    • 无。

  • CNCodec_v3 (v1.6.x->v1.7.0)

    • 无。

4.6.2. 废弃特性

  • CNAS (v4.6.x->v4.7.0)

    • 删除Surpass类指令和 fuse.nram 指令的 async 修饰符。

4.6.3. 修复问题

  • CNAS (v4.7.1->v4.7.2)

    • 修复 --link 编译错误。

  • CNAS (v4.7.0->v4.7.1)

    • 修复 tc_506 架构下寄存器分配错误。

    • 修复 --generate-line-info 编译选项导致编译失败。

  • CNAS (v4.6.x->v4.7.0)

    • 修复某些情况下debug信息影响编译器优化。

    • 修复某些极端情况下数据搬运指令 size 错误。

    • 修复某些情况下CP优化对类型转换指令处理错误。

    • 修复AA分析时多余警告。

    • 修复优化时对部分有NaN和Number模式的指令处理错误。

    • 修复 relun 警告错误。

    • 修复部分VVR指令使用谓词时错误。

    • 修复某些情况下编译时间过长的问题。

    • 修复常量折叠优化对浮点数处理错误。

  • CNCC (v4.7.1->v4.7.2)

    • 无。

  • CNCC (v4.7.0->v4.7.1)

    • 优化标量转数性能。

  • CNCC (v4.6.x->v4.7.0)

    • 修复了零扩展生成指令错误的问题。

    • 修复了 mulhu 和 mulhs 指令选择失败的问题。

    • 修复了函数指针生成错误指令的问题。

  • Libdevice (v4.7.0->v4.7.2)

    • 提升下列函数的性能: cn_vector_floor_f32 , cn_vector_floor_f16 .

  • Libdevice (v4.6.x->v4.7.0)

    • 无。

  • CNGDB (v3.7.1->3.7.2)

    • 修复4个未识别的错误码解析。

  • CNGDB (v3.7.0->3.7.1)

    • 修复 next 命令在device侧的执行速度较慢的问题。

  • CNGDB (v3.6.x->3.7.0)

    • 修复cngdb启动时读取可执行文件后解析coredunmp报错的问题。此时,cngdb将丢弃可执行文件,仅用作解析coredump文件。

  • Cambricon CNRTC (v0.6.0->v0.6.0)

    • 无。

  • llvm-mm (v2.3.x->v2.4.0)

    • 无。

  • CNStudio (v1.0.0->v1.0.0)

    • 无。

  • CNDrv (v2.7.0->v2.7.1)

    • 修复 TaskTopo 在下发 memcpy 节点任务时,可能出现挂死的问题。

  • CNDrv (v2.6.x->v2.7.0)

    • 修复 Coredump 文件解析内容错误的问题。

    • 修复 Module 中零变量可能未初始化为零的问题。

  • CNRT (v6.6.x->v6.7.0)

    • 无。

  • CNVS (v0.13.0->v0.13.1)

    • 修复targeted_power插件偶现执行失败问题。

  • CNVS (v0.12.x->v0.13.0)

    • 修复单独跑 software 插件时,报错段错误。

    • 修复在不支持的平台跑 peak_performance 插件时 core dump 问题。

  • CNDev (v3.6.x->v3.7.0)

    • 无。

  • CNPerf (v5.7.1->v5.7.2)

    • 修复使用 CNPerf record 命令追踪使用了vfork的程序后可能出现 Incompatible pipe bytes: Bad address 错误及崩溃的问题。

  • CNPerf (v5.7.0->v5.7.1)

    • 修复 CNPerf 在缺少写文件权限时,不能正确报错退出的问题。

  • CNPerf (v5.6.x->v5.7.0)

    • 修复使用CNPerf record命令后可能在当前目录下生成 perf_event_data 空文件夹的问题。

    • 修复使用CNPerf record命令后可能出现 Incompatible pipe bytes: Bad address 错误的问题。

    • 修复CNPerf在驱动版本低于5.10.8时,无法正确获取功耗的问题。

    • 修复用户程序直接链接 libdltrace.so 运行时抛异常退出的问题。

  • CNPAPI (v3.7.0->v3.7.1)

    • 修复一些内部问题。

  • CNPAPI (v3.6.x->v3.7.0)

    • 修复了PMU API在MLU570系列上llc数据不正确的问题。

    • 修复了如果在 cnpapiInit 之后马上调用 cnpapiActivityRegisterCallbacks 会有一定概率卡住的问题。

    • 修复CNPAPI Activity API在5.10.13以下版本驱动上运行会卡死的问题。

    • 修复CNPAPI Activity API可能提供了错误的kernel name的问题。

  • CNPX (v1.1.0->v1.1.0)

    • 无。

  • CNCodec (v1.14.3->v1.14.3)

    • 无。

  • CNCodec_v3 (v1.7.0->v1.7.1)

    • 修复板卡编解码固件异常复位时,SDK内部抛出用户无法捕获的异常。

    • 修复在 MIM 模式下JPEG编码偶发性超时问题。

  • CNCodec_v3 (v1.6.x->v1.7.0)

    • 修复MLU570/MLU590在MIM模式下,仅运行JPU编解码后,MIM退出异常问题。

    • 减少主机侧打印信息,修改日志打印级别,默认从 LOG_WARNING 修改成 LOG_ERROR

4.6.4. 遗留问题

  • CNAS (v4.7.2)

    • 寄存器生存期优化在某些情况下错误。

  • CNCC (v4.7.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

    • 在一个程序中,若同时存在地址空间为 __nram____ldram__ 且带初始化的向量,并且这些向量的地址对齐大小不相同时,有可能会出错。

  • CNGDB (v3.7.2)

    • 使用内联函数可能会导致调试信息不准或丢失;

    • MLU3xx 板卡上暂时无法使用 core dump 在线解析功能;

    • 当程序还未运行起来时暂时不支持 watch 全局变量;

    • 同时 watch 两个以上的点可能会有漏报的现象;

    • Union 任务上使用 watch 会误报一些错误信息提示,不影响功能使用。

    • ctrl-c 打断程序运行后,可能无法 continue 继续调试,需要 rerun 重新开始调试。

    • 单步跳出kernel函数会导致不确定行为,建议使用continue替代。

    • watch ram上的变量时,若该变量被多次改变,可能只会显示一次。

  • CNStudio (v1.0.0)

    • Cambricon BANG C中 taskDimtaskId 等特殊关键字语法解析中报异常。

  • CNPerf (v5.7.2)

    • 特定情况下record追踪多进程程序报错。

      现象:

      若被追踪程序在fork后的子进程中未调用exec系列函数前,直接或间接调用CNDrv库函数会失败。

      原因:

      CNPerf初始化时会初始化CNPAPI,CNPAPI会初始化CNDrv。CNDrv初始化后不支持在fork后但不调用exec使用CNDrv相关资源。

      影响:

      不能追踪某些多进程程序。

      规避措施:

      无规避措施。

  • CNPAPI (v3.7.1)

    • 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 的返回值。

      规避措施:

      无规避措施。

    • CNNL v1.10.0以下版本,CNPAPI Callback API 对 cnnlSetNormalizeDescriptorcnnlSetReduceDescriptor 的返回值支持有误。

      现象:

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

      原因:

      当前已发布的 CNNL v1.10.0以下版本无法支持。

      影响:

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

      规避措施:

      需要 CNNL v1.10.0及以上版本。