应用开发环境准备
部署开发环境和运行环境,请参见《CANN 软件安装指南》对应Atlas产品的描述。
- 部署开发环境后,才能获取调用接口所需的头文件、编译运行接口所需的库文件。
对于昇腾设备,已安装驱动、固件场景下,该环境可直接作为运行环境,执行编译生成的应用可执行文件。
- 部署运行环境后,才能在运行环境上执行编译生成的应用可执行文件。
- (可选)通过环境变量“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使环境变量生效。
- 指定一个Device ID,示例表示应用进程可使用Device ID为1的Device
父主题: 概述