环境变量
日志等级设置说明
-
日志等级:
UCP、VP、NN及HPL模块中的日志主要分为7个等级:log等级可设置为0、1、2、3、4、5、6,分别对应Verbose、Debug、Info、Warning、Error、Critical、Never,默认为Warning。
DSP模块中ARM侧的日志主要分为7个等级:log等级可设置为0、1、2、3、4、5、6,分别对应Verbose、Debug、Info、Warning、Error、Critical、Never,默认为Warning。
DSP模块中DSP侧的日志主要分为5个等级:log等级可设置为1、2、3、4、5,分别对应Debug、Info、Warning、Error、Always等级,默认为Warning。
-
日志等级设置规则:
- 若发生的log等级 >= 设置的等级,则该log可以被打印,反之被屏蔽。
- 设置的log等级越小,打印信息越多。例如:设置log等级为3,即为Warning级别,则3、4、5等级的log均可以被打印。
VP模块默认log等级为Warning级别,即以下log级别的信息可以被打印:Warning、Error、Critical。
DSP侧日志可以通过如下步骤获取:
-
配置环境变量,使能DSP日志输出
-
启动日志监听服务
HBIR模型推理说明
DNN支持X86环境下推理HBIR模型,由于您的环境中可能不存在GPU,因此默认不使用GPU加速。
若您的机器上存在GPU,可以通过设置环境变量 HB_NN_HBIR_GPU_ENABLE 为 true 来使用GPU加速。
内存LRU缓存说明
BPU内存在BPU实际使用前,NN模块内部需要对该块内存进行特殊处理才能够正常使用,对内存的频繁处理会导致CPU负载变大,从而可能会引发性能问题。
为了解决这个问题,推理库提供了内存LRU缓存功能,通过设置环境变量 HB_NN_ENABLE_MEM_LRU_CACHE 为 true 来使用。设置方式如下:
-
NN模块内部基于LRU(最近最少使用原理)对输入输出内存进行管理,因此使用缓存功能时,您申请的内存在调用释放接口后,不会立即释放,直到缓存被清理后才会实际释放内存。可以通过设置
HB_NN_MEM_LRU_CACHE_CLEAN_INTERVAL环境变量来控制缓存清理的时间间隔。 -
场景约束:您申请的内存在反复使用的情况才有收益。
-
该缓存功能只适用于NN模块。
L2M模型推理支持说明
UCP侧L2 Cache采用静态映射方案,需要您使用环境变量 HB_DNN_USER_DEFINED_L2M_SIZES 配置分配给每个BPU核心的L2 Cache大小。每个核的Size间使用 : 分割,单位为 MB ,Size值仅支持整数。
UCP会在推理准备阶段按照您的配置分配所有核心的L2 Cache。如下是几种配置示例及说明:
-
仅J6P/H平台支持推理L2M模型。
-
启用L2 Cache优化时,不支持推理优先级设置为抢占。
-
UCP支持不同进程间L2 Cache共享,此特性依赖较新版本的bsp版本,具体版本要求可咨询地平线工具链团队。若您使用L2 Cache进程间共享特性,则需要各进程做同样的分配策略,即设置的
HB_DNN_USER_DEFINED_L2M_SIZES环境变量值保持一致。若您的底软版本不支持进程间共享,需要各进程配置的L2 Cache大小总和不超过硬件所支持的最大值。 -
最大L2 Cache大小可以通过命令
cat /sys/kernel/debug/ion/heaps/custom进行查看。
