---
title: 快速上手
description: "本节介绍AscendNPU IR使用的环境配置与简单用例，方便用户快速验证环境信息，熟悉AscendNPU IR的使用。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/compiler/AscendNPUIR/ir_002.html
sourcePath: /source/zh/canncommercial/900/compiler/AscendNPUIR/ir_002.html
indexId: 75f4f60f11cf5181c5b91de887820b63f3bbbf78946c7760ad6a5027d2710d4162
---
# 快速上手

本节介绍AscendNPU IR使用的环境配置与简单用例，方便用户快速验证环境信息，熟悉AscendNPU IR的使用。

#### AscendNPU IR安装和环境配置

- AscendNPU IR跟随CANN软件包一起发布，请参考《CANN 软件安装(https://www.hiascend.com/document/detail/zh/canncommercial/900/softwareinst/instg/instg_0000.html)》安装CANN软件包。AscendNPU IR二进制文件所在目录为：${INSTALL_DIR}/tools/bishengir。
  ${INSTALL_DIR}请替换为CANN软件安装后文件存储路径。以root用户安装为例，安装后文件默认存储路径为：/usr/local/Ascend/cann。

- 编程开始前，需要配置AscendNPU IR二进制程序相关环境变量。
  CANN软件包提供进程级环境变量设置脚本，供用户在进程中引用，以自动完成环境变量设置。以下示例为root或非root用户默认安装路径，请以实际安装路径为准，执行命令参考如下。 1 2 3 4 # 以root用户安装toolkit包后配置环境变量 source /usr/local/Ascend/cann/set_env.sh # 以非root用户安装toolkit包后配置环境变量 source ${HOME}/Ascend/cann/set_env.sh


#### AscendNPU IR编译示例

本示例简单演示如何将AscendNPU IR编译成可以在AI处理器上执行的二进制文件。

1. 新建样例文件demo.mlir，写入以下内容。

```
func.func @test_basic_kernel0(%valueA: memref<16xf16, #hivm.address_space<gm>>,
%valueB: memref<16xf16, #hivm.address_space<gm>>,
%valueC: memref<16xf16, #hivm.address_space<gm>>)
attributes {hacc.entry, hacc.function_kind = #hacc.function_kind<DEVICE>}
{
%ubA = memref.alloc() : memref<16xf16, #hivm.address_space<ub>>
hivm.hir.load ins(%valueA : memref<16xf16, #hivm.address_space<gm>>) outs(%ubA : memref<16xf16, #hivm.address_space<ub>>)
%ubB = memref.alloc() : memref<16xf16, #hivm.address_space<ub>>
hivm.hir.load ins(%valueB : memref<16xf16, #hivm.address_space<gm>>) outs(%ubB : memref<16xf16, #hivm.address_space<ub>>)
%ubC = memref.alloc() : memref<16xf16, #hivm.address_space<ub>>
hivm.hir.vadd ins(%ubA, %ubB: memref<16xf16, #hivm.address_space<ub>>, memref<16xf16, #hivm.address_space<ub>>) outs(%ubC: memref<16xf16, #hivm.address_space<ub>>)
hivm.hir.store ins(%ubC : memref<16xf16, #hivm.address_space<ub>>) outs(%valueC : memref<16xf16, #hivm.address_space<gm>>)
return
}
```


2. 在样例文件所在路径下，执行编译命令对IR执行编译。
  1 bishengir-compile demo.mlir -o test

  编译成功后，会生成可执行文件test.o。


#### 后续任务

AscendNPU IR能让Triton编写的高性能算子在AI处理器上高效运行，请参考《Triton Ascend(https://gitcode.com/Ascend/triton-ascend)》进行Triton算子开发。
