应用开发环境准备
部署开发环境和运行环境,请参见《CANN软件安装指南》对应Atlas产品的描述。
- 部署开发环境后,才能获取调用接口所需的依赖、运行Python代码文件。
对于昇腾设备,已安装驱动、固件场景下,该环境可直接作为运行环境,执行包含pyACL接口的Python代码文件。
对于非昇腾设备,开发环境部署后不可直接执行包含pyACL接口的Python代码文件,开发完成后,可将Python代码文件上传至已部署运行环境的昇腾设备环境中执行验证。
- 部署运行环境后,才能在运行环境上执行Python代码文件。
指定可用的Device
(可选)通过环境变量“ASCEND_RT_VISIBLE_DEVICES”设置Device ID,指定应用进程可用的Device。支持一次指定一个或多个Device ID。通过设置该环境变量,可以实现不修改应用程序、但调整Device的功能。
示例场景:例如板端环境上的可用Device数量为8,Device ID分别为:0、1、2、3、4、5、6、7。
- 指定一个Device ID,示例表示应用进程可使用Device ID为1的Device。
# acl.rt.get_device_count接口获取到的可用Device数量为1,acl.rt.set_device(0)时,索引0对应的Device ID是1 export ASCEND_RT_VISIBLE_DEVICES = 1
- 指定多个Device ID,以下两个均示例表示应用进程可使用Device ID为2、3、4的Device, Device ID的顺序可以任意设置,但顺序会影响Device ID的索引值。
# acl.rt.get_device_count接口获取到的可用Device数量为3,acl.rt.set_device(0)时,索引0对应的Device ID是2 export ASCEND_RT_VISIBLE_DEVICES = 2,3,4
# acl.rt.get_device_count接口获取到的可用Device数量为3,acl.rt.set_device(0)时,索引0对应的Device ID是4 export ASCEND_RT_VISIBLE_DEVICES = 4,3,2
- 指定多个Device ID,但出现无效值时,则仅无效值之前的Device可用。示例中仅“2”和“3”可用。
# acl.rt.get_device_count接口获取到的可用Device数量为2,acl.rt.set_device(0)时,索引0对应的Device ID是2 export ASCEND_RT_VISIBLE_DEVICES = 2,3,-1,5
通过export命令,设置环境变量只在当前终端窗口生效,且只对设置环境变量之后启动的昇腾AI应用进程生效。
若将export命令写入“~/.bashrc”文件,使环境变量永久生效,则环境变量对该用户下的所有昇腾AI应用进程都生效。这种方式,可能会影响其它不需要调整Device ID的应用进程,请谨慎使用。
将export命令写入“~/.bashrc”文件的方法如下:
- 以安装用户在任意目录下执行vi ~/.bashrc,在该文件最后添加上述内容。
- 执行:wq!命令保存文件并退出。
- 执行source ~/.bashrc使环境变量生效。
设置生成文件落盘路径
(可选)通过环境变量“ASCEND_CACHE_PATH”、“ASCEND_WORK_PATH”设置pyACL应用运行过程中产生的文件的落盘路径,涉及ATC模型转换、AOE模型智能调优、性能数据采集、日志采集等功能,落盘文件包括知识库文件、调优结果文件、性能数据文件、日志文件等。
export ASCEND_CACHE_PATH=/repo/task001/cache export ASCEND_WORK_PATH=/repo/task001/172.16.1.12_01_03
pyACL的依赖
安装后的环境变量设置
在安装完CANN软件包之后,请务必自行配置以下环境变量,否则,将无法正常使用“import acl”。
- 若环境中安装了cann-toolkit软件包:
# 以root用户安装toolkit包。 . /usr/local/Ascend/ascend-toolkit/set_env.sh # 以非root用户安装toolkit包。 . ${HOME}/Ascend/ascend-toolkit/set_env.sh
- 若环境中安装了cann-nnrt软件包:
# 以root用户安装nnrt包。 . /usr/local/Ascend/nnrt/set_env.sh # 以非root用户安装nnrt包。 . ${HOME}/Ascend/nnrt/set_env.sh
- 若环境中安装了cann-nnae软件包:
# 以root用户安装nnae包。 . /usr/local/Ascend/nnae/set_env.sh # 以非root用户安装nnae包。 . ${HOME}/Ascend/nnae/set_env.sh
设置完环境变量后,在Python脚本中加入“import acl”,就可以使用pyACL中的函数了。