clang编译器实现openmp 支持NVIDIA Gpu并行计算

本文是IBM Arpith Jacob 编写的关于如何安装clang编译器实现openmp  支持NVIDIA  Gpu并行计算

原文地址:https://github.com/clang-ykt/clang/wiki


Clang-ykt是NVIDIA GPU的OpenMP编译器。

系统设置

您将需要安装几个库来构建带有支持GPU openmp 的 Clang编译器。您也需要cmake和ninja来建立Clang。在Ubuntu上,你能够像这样安装依赖库:

sudo apt-get install libelf1 libffi6
sudp apt-get install cmake ninja-build

从git中clone需要安装的编译器:

mkdir -p /opt/ibm/sources
mkdir -p /opt/ibm/build
编译器将被安装在这个目录下。
mkdir -p /opt/ibm/clang-ykt

cd /opt/ibm/sources && git clone https://github.com/clang-ykt/llvm
cd /opt/ibm/sources/llvm/tools && git clone https://github.com/clang-ykt/clang
cd /opt/ibm/sources/llvm/projects && git clone https://github.com/clang-ykt/openmp

cd /opt/ibm/build
 将“37”替换为NVIDIA设备的计算能力。
cmake -DCMAKE_BUILD_TYPE=RELEASE \
    -DCMAKE_INSTALL_PREFIX=/opt/ibm/clang-ykt \
    -DLLVM_ENABLE_BACKTRACES=ON \
    -DLLVM_ENABLE_WERROR=OFF \
    -DBUILD_SHARED_LIBS=OFF \
    -DLLVM_ENABLE_RTTI=ON \
    -DOPENMP_ENABLE_LIBOMPTARGET=ON \
    -DCMAKE_C_FLAGS ='- DOPENMP_NVPTX_COMPUTE_CAPABILITY=37 ' \
    -DCMAKE_CXX_FLAGS ='- DOPENMP_NVPTX_COMPUTE_CAPABILITY=37 ' \
    -DLIBOMPTARGET_NVPTX_COMPUTE_CAPABILITY=37 \
    -DLIBOMPTARGET_NVPTX_ENABLE_BCLIB=true \
    -G \
     ninja \
    ../sources/llvm
ninja

安装

运行以下命令将编译器安装在/opt/ibm/clang-ykt处

 
   
ninja install

用法

安装Clang之后,使用以下命令设置您的环境

export PATH=/opt/ibm/clang-ykt/bin:/usr/local/cuda/bin:$PATH 
export LD_LIBRARY_PATH=/opt/ibm/clang-ykt/lib:/usr/local/cuda/lib64:$LD_LIBRARY_PATH 
export LIBRARY_PATH=/opt/ibm/clang-ykt/lib:/usr/local/cuda/lib64:$LIBRARY_PATH

使用以下命令编译OpenMP程序。

clang++ -O3 -fopenmp -fopenmp-targets = nvptx64-nvidia-cuda -v test.cpp

你可能感兴趣的:(编译器构建)