编译AI处理器编译器

本文主要是在编译AI处理器编译器的过程说明及遇到的问题整理
这是我入职以后的学习笔记,已经屏蔽了所有和商业有关的关键字,若造成影响请告知。

准备

  1. ssh到工作节点,安全性输入yes,密码输入自己账户密码。

  2. 注意,代码开发工作要放到/自己用户名路径/下边。

  3. 需要配置环境变量:

   source /arm/tools/setup/init/tcsh
   module load core platform/lsf/10.1sp4
   module load core arm/cluster/2.0
   module load eda synopsys/scl/2017.12
   module load swdev python/python/3.6.1
   module load swdev
   module load gnu/gcc/7.3.0
   
   setenv PATH /usr/local/cuda/bin:/usr/local/cuda/lib64:/自己用户名路径/workarea/tools/gdb-8.3/bin:/自己用户名路径/workarea/tools/cmake-3.14.4/bin:/自己用户名路径/workarea/tools/python/bin:$PATH
   
   setenv LD_LIBRARY_PATH /usr/local/cuda/lib64:/自己用户名路径/workarea/tools/gdb-8.3/lib:/自己用户名路径/workarea/tools/gcc-8.1.0/lib:/自己用户名路径/workarea/tools/gcc-8.1.0/lib64:$LD_LIBRARY_PATH
   
   Setenv CC which gcc
   
   Setenv CXX which g++
   
   Setenv PYTHONE which python

编译命令

  1. configuration

    cmake ../src/ -DCMAKE_BUILD_TYPE=Debug -DLLVM_TARGETS_TO_BUILD="AIPU"

  2. make

    make

遇到的问题

  1. 使用make -j选项编译之后,编译失败,提示:g++ error: vfork resource temporarily unavailable.

    未解决:初步估计应该是我账户权限不足,当启动多线程加速编译时,会提示资源受限,使用make进行编译,不会出现这样的问题,但是编译非常慢。

    初步解决:使用-j选项是表示使用最多的线程进行工作,当我使用make -j 4时,使用4线程编译通过。

  2. 编译之后,生成clang-8,使用该编译器对c程序进行编译,提示:`error: unable to create target: ‘No available targets are compatible with triple"x86_64-unknown-linux-gnu"’

    解决:编译器运行未指定target,应该按以下方式运行:

    ./clang --target=aipu -emit-llvm -S test.c : 这样生成的是.ll后缀文件

    ./clang --target=aipu -O0 -S test.c : 这样生成的是汇编文件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章