昇腾社区首页
中文
注册
开发者
下载

运行样例

参考异构编程环境配置与编译器使用完成安装与环境变量配置。

编译

Cube和Vector代码需要写在同一个kernel函数中,编译器针对此aicore代码进行两次device代码编译,第一次进行Cube代码编译,第二次进行Vector代码编译,并最终将Cube和Vector代码链接在一起打包成可执行device代码。Runtime提供特别版本的<<<>>>调用支持,使得能够通过FFTS加载Cube/Vector mixkernel任务。

编译时,须指定CANN包安装路径下对应的include目录,编译混合代码,需要指定aicore类型为:dav-c220。使用如下命令编译生成.o可执行文件

执行如下命令编译生成.o可执行文件:

bisheng \
-O2 \
--cce-aicore-arch=dav-c220 \
-I ${install_path}/latest/include \
-I ${install_path}/8.3.RC1/x86_64-linux/include/experiment/msprof \
-I ${install_path}/8.3.RC1/x86_64-linux/include/experiment/runtime/runtime \
-L ${install_path}/latest/lib64 \
-lascendcl -lruntime \
main.cce \
mix_kernel.cce \
-o test

执行用例

  1. 增加可执行文件的权限。
    chmod +x test
  2. 配置动态链接库的LD_LIBRARY_PATH,需配置为runtime so的路径,如果用户自行编译了动态链接库,同时需要配置该动态库的路径。
    $export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$runtime_so_path:$libabcdso_path
  3. 运行可执行文件。
    ./test
  4. 查看结果。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    29    0    ...   0    25
               ...
    11    0    ...   0    24
    
    29    0    ...   0    25
               ...
    11    0    ...   0    24
    
    Matrix golden and Matrix tensor_c are equal