跳到主要内容

pyACL表达约定

acldvppChannelMode

数据格式说明
DVPP_CHNMODE_VPC = 1指定图片数据处理通道用于实现VPC功能
DVPP_CHNMODE_JPEGD = 2指定图片数据处理通道用于实现JPEGD功能
DVPP_CHNMODE_JPEGE = 4指定图片数据处理通道用于实现JPEGE功能
DVPP_CHNMODE_PNGD = 8指定图片数据处理通道用于实现PNGD功能

父主题: 数据类型及其操作接口

aclrtFloatOverflowMode

数据格式说明
ACL_RT_OVERFLOW_MODE_SATURATION = 0饱和模式,默认值。
ACL_RT_OVERFLOW_MODE_INFNAN = 1Inf/NaN模式(符合IEEE 754标准)。
ACL_RT_OVERFLOW_MODE_UNDEF = 2预留参数。

父主题: 数据类型及其操作接口

aclrtUtilizationInfo

数据格式说明
cube_utilization整型,Cube算子使用率。
vector_utilization整型,Vector算子使用率。
aicpu_utilization整型,AI CPU算子使用率。
memory_utilization整型,Device内存使用率。
utilization_extend整型,预留扩展字段,当前版本不支持。

父主题: 数据类型及其操作接口

pyACL表达约定

接口命名规则

接口命名同时满足如下规则:

  1. acl+接口类别缩写+操作动词+对象
  2. 操作动词和对象均采用首字母大写。

接口类别

接口类别缩写描述
runtimert表示运行管理类的接口
DVPPmedia表示媒体数据处理类的接口
AIPPaipp表示aipp(AI Preprocessing)类的接口
CBLASblas表示blas类的接口
modelmdl表示模型推理类的接口
OPop表示算子执行类的接口
fvfv表示特征向量检索的接口
Profilingprof表示Profiling配置类接口

注:

  1. 缩写原则上不超过4个字母。

  2. 在接口命名中,如果类别与操作对象重叠时,操作动词后的对象将省略。

如:acl.mdl.load_from_file_with_mem,表示model类接口,这个接口表示含义是load model from file,因此在接口命名中Load后面 mdl将被省略。

变量命名

本文代码示例中涉及的变量,其中,命名带下划线的变量(例如:deviceId)表示类的私有变量。

父主题: 附录

使用约束

  • 进入系统休眠前,需要确保将正在运行的AI推理业务、媒体数据处理业务等进程退出。等待唤醒成功后,再继续执行业务。

  • 不支持使用fork函数创建多个进程,且在进程中调用pyACL接口的场景,否则进程运行时会报错或者卡死。

  • 不支持在acl.rt.memcpy_asyncacl.rt.memset_async接口等异步操作内存过程中使用fork以及封装了fork的函数,如system、posix_spawnp等,否则会导致进程运行时会报错,甚至卡死等不可预期的错误。

  • 对于创建类接口(例如:acl.rt.create_streamacl.rt.create_eventacl.create_data_buffer等),用户调用该类接口创建对应的资源后,资源使用完成后,建议及时调用对应的销毁类接口(例如:acl.rt.destroy_streamacl.rt.destroy_eventacl.destroy_data_buffer等),否则,程序可能会异常。

  • 对于销毁类接口(例如:acl.rt.destroy_streamacl.rt.destroy_eventacl.rt.freeacl.destroy_data_buffer等),用户调用该类接口后,不能继续使用已释放或销毁的资源,建议用户调用销毁类接口后,将相关资源设置为无效值(例如,设置为None)。

  • 对于Atlas 200/500 A2推理产品,一个Device上最多只能支持64个用户进程,Host最多只能支持Device个数*64个进程。

  • 使用pyACL提供的内存申请接口(例如acl.rt.mallocacl.media.dvpp_malloc等)申请内存后,为确保内存中不会有脏数据,建议在使用内存前先调用acl.rt.memsetacl.rt.memset_async接口先清空内存,例如acl.rt.memset(dev_buffer_ptr, dev_buffer_size, 0, dev_buffer_size)。

  • Ascend RC形态下,如果应用程序中涉及aclrtMalloc、acldvppMalloc、hi_mpi_dvpp_malloc等内存申请接口,应用程序在Device上运行时,当前默认在内存不足时,应用程序可能会挂起,等待内存资源,用户可以根据实际需求选择启用操作系统提供的一些配置(例如,enable_oom_killer),这样在内存不足时,应用程序会自动退出,不会一直等待。

    若启用enable_oom_killer,您需登录Device,在“/proc/sys/vm”目录下,以root用户启用enable_oom_killer,命令示例如下,1表示启用,0表示禁用:

    echo 1 > enable_oom_killer

父主题: 附录

在线提单