参考链接:关于 llvm/clang 在 Ubuntu 下的安装?
补充:
1. 我下载的是LLVM7.0.0版本,对应源码 LLVM source code和Clang source code
2. 在第四步中,进入build目录,执行cmake ../llvm -DCMAKE_BUILD_TYPE=Debug(或者Release)
省略后边: -DLLVM_TARGETS_TO_BUILD=X86
3. 在第五步中,最好直接使用 make
省略后边: -j4
原因:使用多核编译时容易出现以下错误:c++: internal compiler error: killed (program ccplus)
出现该问题是因为空间不足,需要增加交换空间 (安装 CMake 错误: c++: internal compiler error: Killed
在基于PC的Ubuntu16.04上测试也是可行的!!!
参考链接:OpenCL科普及在ubuntu 16.04 LTS上的安装
ubuntu安装OpenCL运行及编译环境 (主要参考其中的相关解释)
接着,打开目录/tvm/build下的config.cmake,进行以下修改:
# Whether enable OpenCL runtime
set(USE_OPENCL ON)
最后,在以上目录下继续执行:
cmake ..
make -j4
通过以上步骤便完成了TVM和OpenCL的安装!!!
可参考【TVM学习五】Install TVM on Local Machine (Ubuntu16.04)
#--------------------------------------------------------------------
# Template custom cmake configuration for compiling
#
# This file is used to override the build options in build.
# If you want to change the configuration, please use the following
# steps. Assume you are on the root directory. First copy the this
# file so that any local changes will be ignored by git
#
# $ mkdir build
# $ cp cmake/config.cmake build
#
# Next modify the according entries, and then compile by
#
# $ cd build
# $ cmake ..
#
# Then buld in parallel with 8 threads
#
# $ make -j8
#--------------------------------------------------------------------
#---------------------------------------------
# Backend runtimes.
#---------------------------------------------
# Whether enable CUDA during compile,
#
# Possible values:
# - ON: enable CUDA with cmake's auto search
# - OFF: disable CUDA
# - /path/to/cuda: use specific path to cuda toolkit
set(USE_CUDA ON)
# Whether enable ROCM runtime
#
# Possible values:
# - ON: enable ROCM with cmake's auto search
# - OFF: disable ROCM
# - /path/to/rocm: use specific path to rocm
set(USE_ROCM OFF)
# Whether enable SDAccel runtime
set(USE_SDACCEL OFF)
# Whether enable Intel FPGA SDK for OpenCL (AOCL) runtime
set(USE_AOCL OFF)
# Whether enable OpenCL runtime
set(USE_OPENCL ON)
# Whether enable Metal runtime
set(USE_METAL OFF)
# Whether enable Vulkan runtime
#
# Possible values:
# - ON: enable Vulkan with cmake's auto search
# - OFF: disable vulkan
# - /path/to/vulkan-sdk: use specific path to vulkan-sdk
set(USE_VULKAN OFF)
# Whether enable OpenGL runtime
set(USE_OPENGL OFF)
# Whether to enable SGX runtime
#
# Possible values for USE_SGX:
# - /path/to/sgxsdk: path to Intel SGX SDK
# - OFF: disable SGX
#
# SGX_MODE := HW|SIM
set(USE_SGX OFF)
set(SGX_MODE "SIM")
set(RUST_SGX_SDK "/path/to/rust-sgx-sdk")
# Whether enable RPC runtime
set(USE_RPC ON)
# Whether embed stackvm into the runtime
set(USE_STACKVM_RUNTIME OFF)
# Whether enable tiny embedded graph runtime.
set(USE_GRAPH_RUNTIME ON)
# Whether enable additional graph debug functions
set(USE_GRAPH_RUNTIME_DEBUG OFF)
# Whether build with LLVM support
# Requires LLVM version >= 4.0
#
# Possible values:
# - ON: enable llvm with cmake's find search
# - OFF: disable llvm
# - /path/to/llvm-config: enable specific LLVM when multiple llvm-dev is available.
set(USE_LLVM /data0/zzw/llvm-build/bin/llvm-config)
#---------------------------------------------
# Contrib libraries
#---------------------------------------------
# Whether use BLAS, choices: openblas, mkl, atlas, apple
set(USE_BLAS openblas)
# /path/to/mkl: mkl root path when use mkl blas library
# set(USE_MKL_PATH /opt/intel/mkl) for UNIX
# set(USE_MKL_PATH ../IntelSWTools/compilers_and_libraries_2018/windows/mkl) for WIN32
set(USE_MKL_PATH none)
# Whether use contrib.random in runtime
set(USE_RANDOM OFF)
# Whether use NNPack
set(USE_NNPACK OFF)
# Whether use CuDNN
set(USE_CUDNN ON)
# Whether use cuBLAS
set(USE_CUBLAS ON)
# Whether use MIOpen
set(USE_MIOPEN OFF)
# Whether use MPS
set(USE_MPS OFF)
# Whether use rocBlas
set(USE_ROCBLAS OFF)
# Whether use contrib sort
set(USE_SORT ON)
# Build ANTLR parser for Relay text format
set(USE_ANTLR OFF)
# Whether use Relay debug mode
set(USE_RELAY_DEBUG OFF)
支持:CUDA,CUDNN,CUBLAS,OPENCL,LLVM,openblas
sudo apt-get install libopenblas-dev
sudo apt install ocl-icd-opencl-dev