一、报错关键字
为解决开发者套件上,使用ATC工具转换模型时会出现转换过程很慢或卡住不动的问题。该问题可能由于内存不足,导致进程卡死
/usr/local/Ascend/ascend-toolkit/latest/bin/atc: line 17: 2723 Killed
Process ForkServerPoolWorker-2:
二、报错截图
三、解决办法
方法1:
开发板cpu核数较少,atc过程中使用的最大并行进程数默认是服务器的配置,可以使用环境变量减少atc过程中的进程数来减少内存消耗.
1.减小算子最大并行编译进程数
export TE_PARALLEL_COMPILER=1
2.减少图编译时可用的CPU核数
export MAX_COMPILE_CORE_NUMBER=1
3.进行ATC转换
方法2:
创建交换分区创建交换分区-样例运行-FAQ-附录-Atlas 200I DK A2开发者套件23.0.RC3开发文档-昇腾社区 (hiascend.com)
1.以root用户远程登录开发者套件。
2.创建一个大小为8G的swap分区。
fallocate --length 8G /swapfile
3.修改文件权限。
chmod 600 /swapfile
4.创建swap分区。
mkswap /swapfile
回显如下:
Setting up swapspace version <span>1</span>, size = <span>8</span> GiB (<span>8589934592</span> bytes)
no label, UUID=<span>2</span>b9e68ec<span>-e</span>6f5-<span>46</span>df-bd10-<span>8</span>f2955026de7
5.挂载swap分区。
swapon /swapfile
6.执行命令查看分区是否创建成功。
free -h
回显:
total used free shared buff/cache available
Mem: 15Gi 807Mi 3Gi 47Mi 703Mi 14Gi
Swap: 8.0Gi 0B 8.0Gi
7.再去进行ATC转换就正常成功了
ATC run success, welcome to the next use.