获取并安装离线推理引擎包,详细安装步骤如下。
chmod +x 软件包名.run
软件包名.run表示软件包名,例如离线推理引擎包Ascend-cann-nnrt_{version}_linux-{arch}.run。请根据实际包名进行替换。
./软件包名.run --check
./软件包名.run --install
其中${HOME}为当前用户目录。软件包支持多版本安装,同一安装路径下,可以安装多个版本的软件包,不同版本的软件通过版本目录来区分。默认使用最后安装的版本(即通过软件包名/latest建立软连接到最后安装的版本)。
其中${HOME}为当前用户目录。
#配置为中文(简体) export LANG=zh_CN.UTF-8 #配置为英文 export LANG=en_US.UTF-8
xxx install success
xxx表示安装的实际软件包名。
针对Atlas 200I A2 加速模块(RC场景)和Atlas 500 A2 智能小站场景,提供了基于cgroup(Control Groups)机制的内存限制功能,当业务进程的cgroup达到特定的内存限额后,内核会尝试回收内存。添加方法如下:
在启动过程中通过getpid() 函数获取到当前进程的pid,再将其写入/sys/fs/cgroup/memory/usermemory/cgroup.procs文件中。示例代码如下,加粗部分是关键代码。
int write_task(void) { int pid = getpid(); int fd = -1; char buf[100] = {0}; int ret; fd = open("/sys/fs/cgroup/memory/usermemory/cgroup.procs", O_RDWR, S_IRUSR | S_IWUSR); if (fd < 0) { printf("can't open pidfile\n"); return (-1); } ret = sprintf(buf, "%ld", (long)getpid()); if (ret < 0) { printf("sprintf_s failed."); close(fd); return (1); } ret = write(fd, buf, strlen(buf) + 1); if (ret != (strlen(buf) + 1)) { printf("write failed, errno.\n"); close(fd); return (1); } close(fd); return 0; }