配置信息

环境变量

HB_NN_LOG_LEVEL // 设置NN模块日志等级,值为0、1、2、3、4、5、6,分别对应Trace、Debug、Info、Warning、Error、Critical、Never,默认为Warning。 HB_NN_HBIR_GPU_ENABLE // 设置NN模块是否使用GPU加速,true为使用。 HB_NN_ENABLE_MEM_LRU_CACHE // 设置NN模块是否使用内存LRU缓存,true为使用,默认不使用。 HB_NN_MEM_LRU_CACHE_CLEAN_INTERVAL // 设置NN模块清理LRU缓存的时间间隔,单位为毫秒,默认为1000ms。

日志等级设置说明

  • 日志等级:

    NN 模块中的日志主要分为7个等级:

    log等级可设置为0、1、2、3、4、5、6,分别对应Trace、Debug、Info、Warning、Error、Critical、Never,默认为Warning。

  • 日志等级设置规则:

    • 若发生的log等级 >= 设置的等级,则该log可以被打印,反之被屏蔽。
    • 设置的log等级越小,打印信息越多。例如:设置log等级为3,即为Warning级别,则3、4、5等级的log均可以被打印。NN 模块默认log等级为Warning级别,即以下log级别的信息可以被打印:Warning、Error、Critical。

HBIR模型推理说明

DNN支持X86环境下推理HBIR模型,由于您的环境中可能不存在GPU,因此默认不使用GPU加速。

若您的机器上存在GPU,可以通过设置环境变量 HB_NN_HBIR_GPU_ENABLEtrue 来使用GPU加速。

注解
  • 使用GPU加速时,应确保您的机器上已安装了相应的GPU驱动和CUDA环境,环境要求请参考环境部署

  • 使用GPU加速时,应确保 libhbdnn.soLD_LIBRARY_PATH 所设置的目录下。

  • 使用GPU加速时,可以设置控制参数中的 deviceId 来指定GPU进行计算,应确保设置的值在 [0, gpu_dvice_count) 范围内。

内存LRU缓存说明

BPU内存在BPU实际使用前,NN模块内部需要对该块内存进行特殊处理才能够正常使用,对内存的频繁处理会导致CPU负载变大,从而可能会引发性能问题。

为了解决这个问题,推理库提供了内存LRU缓存功能,通过设置环境变量 HB_NN_ENABLE_MEM_LRU_CACHEtrue 来使用。设置方式如下:

export HB_NN_ENABLE_MEM_LRU_CACHE=true
注解
  • NN模块内部基于LRU(最近最少使用原理)对输入输出内存进行管理,因此使用缓存功能时,您申请的内存在调用释放接口后,不会立即释放,直到缓存被清理后才会实际释放内存。可以通过设置 HB_NN_MEM_LRU_CACHE_CLEAN_INTERVAL 环境变量来控制缓存清理的时间间隔。

  • 场景约束:您申请的内存在反复使用的情况才有收益。

  • 该缓存功能只适用于NN模块。