CANN应用开发使用约束

CANN应用开发使用约束
使用约束【免费下载链接】docs该仓库用于维护cann公共文档项目地址: https://gitcode.com/cann/docs关于低功耗进入系统休眠前需要确保不下发AI推理、媒体数据处理等相关业务或者退出业务进程。等待系统唤醒成功后再继续下发业务或重启业务进程。关于进程不支持使用fork函数以及封装了fork的函数如system、posix_spawnp等创建多个子进程且在进程中调用acl接口的场景否则进程运行时会报错或者卡死。对于Atlas 训练系列产品物理机场景下一个Device上最多只能支持64个用户进程Host最多只能支持Device个数64个进程虚拟机场景下一个Device上最多只能支持32个用户进程Host最多只能支持Device个数32个进程。对于Atlas 推理系列产品物理机场景下一个Device上最多只能支持64个用户进程Host最多只能支持Device个数64个进程虚拟机场景下一个Device上最多只能支持32个用户进程Host最多只能支持Device个数32个进程。对于Atlas 200I/500 A2 推理产品一个Device上最多只能支持64个用户进程Host最多只能支持Device个数*64个进程。对于Atlas A2 训练系列产品/Atlas A2 推理系列产品一个Device上最多只能支持63个用户进程Host最多只能支持Device个数*63个进程。对于Atlas A3 训练系列产品/Atlas A3 推理系列产品一个Device上最多只能支持63个用户进程Host最多只能支持Device个数*63个进程。对于Ascend 950PR/Ascend 950DT一个Device上最多只能支持64个用户进程Host最多只能支持Device个数*64个进程。关于创建类和销毁类接口对于创建类接口例如aclrtCreateStream、aclrtCreateEvent、aclCreateDataBuffer等用户调用该类接口创建对应的资源后资源使用完成后建议及时调用对应的销毁类接口例如aclrtDestroyStream、aclrtDestroyEvent、aclDestroyDataBuffer等否则程序可能会异常。对于销毁类接口例如aclrtDestroyStream、aclrtDestroyEvent、aclrtFree、aclDestroyDataBuffer等用户调用该类接口后不能继续使用已释放或销毁的资源建议用户调用销毁类接口后将相关资源设置为无效值例如置为NULL。关于内存在Atlas 推理系列产品上开发业务应用时需避免多个操作向同一个内存地址写数据否则可能导致硬件异常。不支持在aclrtMemcpyAsync、aclrtMemsetAsync接口等异步操作内存过程中使用fork以及封装了fork的函数如system、posix_spawnp等否则会导致进程运行时会报错甚至卡死等不可预期的错误。使用内存申请接口例如aclrtMalloc申请内存后为确保内存中不会有脏数据建议在使用内存前先调用aclrtMemset或aclrtMemsetAsync接口先清空内存例如aclrtMemset(devBufferPtr, devBufferSize, 0, devBufferSize)。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旧版本AI处理器-新版本AI处理器的应用迁移需在迁移后的AI处理器版本上重新转换模型、编译应用程序否则可能存在应用执行异常的情况。【免费下载链接】docs该仓库用于维护cann公共文档项目地址: https://gitcode.com/cann/docs创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

最新新闻

日新闻

周新闻

月新闻