Skip to content
This repository has been archived by the owner on Dec 17, 2020. It is now read-only.

Commit

Permalink
Test HIP through Nvidia
Browse files Browse the repository at this point in the history
  • Loading branch information
masterleinad committed Feb 7, 2020
1 parent 49b67f3 commit 26b3683
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 143 deletions.
148 changes: 5 additions & 143 deletions .jenkins
Original file line number Diff line number Diff line change
@@ -1,172 +1,34 @@
pipeline {
agent none

environment {
CCACHE_DIR = '/tmp/ccache'
CCACHE_MAXSIZE = '10G'
CCACHE_CPP2 = 'true'
}
stages {
stage('Build') {
parallel {
stage('CUDA-9.2-Clang') {
agent {
dockerfile {
filename 'Dockerfile.clang'
dir 'scripts/docker'
additionalBuildArgs '--pull'
label 'nvidia-docker && volta'
args '-v /tmp/ccache.kokkos:/tmp/ccache'
}
}
steps {
sh 'ccache --zero-stats'
sh '''rm -rf build && mkdir -p build && cd build && \
cmake \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
-DCMAKE_CXX_COMPILER=clang++ \
-DCMAKE_CXX_FLAGS=-Werror \
-DKokkos_ENABLE_COMPILER_WARNINGS=ON \
-DKokkos_ENABLE_TESTS=ON \
-DKokkos_ENABLE_CUDA=ON \
-DKokkos_ENABLE_CUDA_LAMBDA=ON \
-DKokkos_ARCH_VOLTA70=ON \
.. && \
make -j8 && ctest --output-on-failure'''
}
post {
always {
sh 'ccache --show-stats'
}
}
}
stage('CUDA-9.2-NVCC') {
agent {
dockerfile {
filename 'Dockerfile.nvcc'
dir 'scripts/docker'
additionalBuildArgs '--pull --build-arg BASE=nvidia/cuda:9.2-devel'
label 'nvidia-docker && volta'
args '-v /tmp/ccache.kokkos:/tmp/ccache'
}
}
steps {
sh 'ccache --zero-stats'
sh '''rm -rf build && mkdir -p build && cd build && \
cmake \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
-DCMAKE_CXX_COMPILER=$WORKSPACE/bin/nvcc_wrapper \
-DCMAKE_CXX_FLAGS=-Werror \
-DKokkos_ENABLE_COMPILER_WARNINGS=ON \
-DKokkos_ENABLE_TESTS=ON \
-DKokkos_ENABLE_CUDA=ON \
-DKokkos_ENABLE_CUDA_LAMBDA=ON \
-DKokkos_ARCH_VOLTA70=ON \
.. && \
make -j8 && ctest --output-on-failure'''
}
post {
always {
sh 'ccache --show-stats'
}
}
}
stage('CUDA-10.1-NVCC-RDC') {
stage('HIP') {
agent {
dockerfile {
filename 'Dockerfile.nvcc'
filename 'Dockerfile.hip'
dir 'scripts/docker'
additionalBuildArgs '--pull --build-arg BASE=nvidia/cuda:10.1-devel'
additionalBuildArgs '--pull --build-arg HIP_VERSION=roc-2.9.0'
label 'nvidia-docker && volta'
args '-v /tmp/ccache.kokkos:/tmp/ccache'
}
}
steps {
sh 'ccache --zero-stats'
sh '''rm -rf build && mkdir -p build && cd build && \
cmake \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
-DCMAKE_CXX_COMPILER=$WORKSPACE/bin/nvcc_wrapper \
-DCMAKE_CXX_FLAGS=-Werror \
-DKokkos_ENABLE_COMPILER_WARNINGS=ON \
-DKokkos_ENABLE_TESTS=ON \
-DKokkos_ENABLE_OPENMP=ON \
-DKokkos_ENABLE_CUDA=ON \
-DKokkos_ENABLE_CUDA_LAMBDA=ON \
-DKokkos_ENABLE_CUDA_UVM=ON \
-DKokkos_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE=ON \
-DKokkos_ARCH_VOLTA70=ON \
.. && \
make -j8 && ctest --output-on-failure'''
}
post {
always {
sh 'ccache --show-stats'
}
}
}
stage('CUDA-10.1-NVCC-DEBUG') {
agent {
dockerfile {
filename 'Dockerfile.nvcc'
dir 'scripts/docker'
additionalBuildArgs '--pull --build-arg BASE=nvidia/cuda:10.1-devel --build-arg CMAKE_VERSION=3.15.5'
label 'nvidia-docker && volta'
args '-v /tmp/ccache.kokkos:/tmp/ccache'
}
}
steps {
sh 'ccache --zero-stats'
sh '''rm -rf build && mkdir -p build && cd build && \
cmake \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
-DCMAKE_CXX_COMPILER=$WORKSPACE/bin/nvcc_wrapper \
-DCMAKE_CXX_COMPILER=/opt/rocm/hip/hipcc \
-DCMAKE_CXX_FLAGS=-Werror \
-DKokkos_ENABLE_COMPILER_WARNINGS=ON \
-DKokkos_ENABLE_DEBUG=ON \
-DKokkos_ENABLE_DEBUG_BOUNDS_CHECK=ON \
-DKokkos_ENABLE_TESTS=ON \
-DKokkos_ENABLE_CUDA=ON \
-DKokkos_ENABLE_CUDA_LAMBDA=ON \
-DKokkos_ENABLE_HIP=ON \
-DKokkos_ARCH_VOLTA70=ON \
.. && \
make -j8 && ctest --output-on-failure'''
}
post {
always {
sh 'ccache --show-stats'
}
}
}
stage('GCC-4.8.4') {
agent {
dockerfile {
filename 'Dockerfile.gcc'
dir 'scripts/docker'
additionalBuildArgs '--pull'
label 'docker'
}
}
environment {
OMP_NUM_THREADS = 8
OMP_PLACES = 'threads'
OMP_PROC_BIND = 'spread'
}
steps {
sh '''rm -rf build && mkdir -p build && cd build && \
cmake \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_FLAGS=-Werror \
-DKokkos_ENABLE_COMPILER_WARNINGS=ON \
-DKokkos_ENABLE_TESTS=ON \
-DKokkos_ENABLE_OPENMP=ON \
.. && \
make -j8 && ctest --output-on-failure'''
}
}
stage('Clang-Format') {
agent {
Expand Down
26 changes: 26 additions & 0 deletions scripts/docker/Dockerfile.hip
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
ARG BASE=nvidia/cuda:10.1-devel
FROM $BASE

RUN DEBIAN_FRONTEND=noninteractive && \
apt-get update && apt-get upgrade -y && apt-get install -y \
bc \
cmake \
git \
wget \
ccache \
libelf-dev \
&& \
apt-get clean && rm -rf /var/lib/apt/lists/*

# Install HIP
ARG HIP_VERSION=roc-2.6.0
ENV PATH=/opt/rocm/hip/bin:$PATH
RUN HIP_URL=https://github.com/ROCm-Developer-Tools/HIP/archive/${HIP_VERSION}.tar.gz && \
mkdir /scratch && cd /scratch && \
wget --quiet ${HIP_URL} --output-document=HIP.tar.gz && \
mkdir HIP && tar -xf HIP.tar.gz -C HIP --strip-components=1 && \
cd HIP && \
mkdir build && cd build && \
cmake -DCMAKE_BUILD_TYPE=Release .. && make && make install && \
rm -r /scratch && \
hipconfig --full

0 comments on commit 26b3683

Please sign in to comment.