Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 78 additions & 0 deletions Jenkinsfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
#!/usr/bin/env groovy
@Library('rocJENKINS.develop') _
import com.amd.project.*
import com.amd.docker.*

////////////////////////////////////////////////////////////////////////
// Mostly generated from snippet generator 'properties; set job properties'
// Time-based triggers added to execute nightly tests, eg '30 2 * * *' means 2:30 AM
properties([
pipelineTriggers([cron('0 1 * * *'), [$class: 'PeriodicFolderTrigger', interval: '5m']]),
buildDiscarder(logRotator(
artifactDaysToKeepStr: '',
artifactNumToKeepStr: '',
daysToKeepStr: '',
numToKeepStr: '10')),
disableConcurrentBuilds(),
// parameters([booleanParam( name: 'push_image_to_docker_hub', defaultValue: false, description: 'Push rocprim image to rocl docker-hub' )]),
[$class: 'CopyArtifactPermissionProperty', projectNames: '*']
])


////////////////////////////////////////////////////////////////////////
import java.nio.file.Path;



rocprimCI:
{

def rocprim = new rocProject('rocprim')

def nodes = new dockerNodes(['gfx900', 'gfx906'], rocprim.paths)

def compileCommand =
{
platform, project->

project.paths.construct_build_prefix()
def command = """#!/usr/bin/env bash
set -x
cd ${project.paths.project_build_prefix}
LD_LIBRARY_PATH=/opt/rocm/hcc/lib CXX=${project.compiler.compiler_path} ${project.paths.build_command}
"""
platform.runCommand(this, command)
}

def testCommand =
{
platform, project->

def testCommand = 'ctest --output-on-failure -E rocprim.hip.device_merge_sort'

def command = """#!/usr/bin/env bash
set -x
cd ${project.paths.project_build_prefix}
cd ${project.testDirectory}
LD_LIBRARY_PATH=/opt/rocm/hcc/lib ${testCommand}
"""

platform.runCommand(this, command)
}

def packageCommand =
{
platform, project->

def command = """
echo "rocPRIM is a header only library and does not need packaging"
"""

platform.runCommand(this, command)
}

buildProject(rocprim, nodes.dockerArray, compileCommand, testCommand, packageCommand)

}


50 changes: 50 additions & 0 deletions docker/dockerfile-build-ubuntu-rock
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Parameters related to building hip
ARG base_image

FROM ${base_image}
LABEL maintainer="kent.knox@amd"

ARG user_uid

# Install dependent packages
# Dependencies:
# * hcc-config.cmake: pkg-config
# * tensile: python2.7, python-yaml
# * rocblas-test: gfortran, googletest
# * rocblas-bench: libboost-program-options-dev
# * libhsakmt.so: libnuma1
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
rock-dkms \
sudo \
ca-certificates \
git \
make \
cmake \
clang-format-3.8 \
pkg-config \
python2.7 \
python-yaml \
gfortran \
libboost-program-options-dev \
libnuma1 \
&& \
apt-get clean && \
rm -rf /var/lib/apt/lists/*

# docker pipeline runs containers with particular uid
# create a jenkins user with this specific uid so it can use sudo priviledges
# Grant any member of sudo group password-less sudo privileges
RUN useradd --create-home -u ${user_uid} -o -G sudo --shell /bin/bash jenkins && \
mkdir -p /etc/sudoers.d/ && \
echo '%sudo ALL=(ALL) NOPASSWD:ALL' | tee /etc/sudoers.d/sudo-nopasswd

ARG ROCBLAS_SRC_ROOT=/usr/local/src/rocBLAS

# Clone rocblas repo
# Build client dependencies and install into /usr/local (LAPACK & GTEST)
RUN mkdir -p ${ROCBLAS_SRC_ROOT} && cd ${ROCBLAS_SRC_ROOT} && \
git clone -b saad/develop --depth=1 https://github.com/saadrahim/rocPRIM . #&& \
#mkdir -p build/deps && cd build/deps && \
#cmake -DBUILD_BOOST=OFF ${ROCBLAS_SRC_ROOT}/deps && \
#make -j $(nproc) install && \
#rm -rf ${ROCBLAS_SRC_ROOT}
54 changes: 54 additions & 0 deletions docker/dockerfile-install-ubuntu
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Parameters related to building hip
ARG base_image

FROM ${base_image}
LABEL maintainer="kent.knox@amd"

ARG user_uid

# Install dependent packages
# Dependencies:
# * hcc-config.cmake: pkg-config
# * tensile: python2.7, python-yaml
# * rocblas-test: gfortran, googletest
# * rocblas-bench: libboost-program-options-dev
# * libhsakmt.so: libnuma1

USER root

RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
python2.7-minimal
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
sudo \
ca-certificates \
git \
make \
cmake \
clang-format-3.8 \
pkg-config \
python2.7 \
python-yaml \
gfortran \
libboost-program-options-dev \
libnuma1 \
&& \
apt-get clean && \
rm -rf /var/lib/apt/lists/*

# docker pipeline runs containers with particular uid
# create a jenkins user with this specific uid so it can use sudo priviledges
# Grant any member of sudo group password-less sudo privileges
RUN useradd --create-home -u ${user_uid} -o -G sudo --shell /bin/bash jenkins && \
mkdir -p /etc/sudoers.d/ && \
echo '%sudo ALL=(ALL) NOPASSWD:ALL' | tee /etc/sudoers.d/sudo-nopasswd

ARG ROCBLAS_SRC_ROOT=/usr/local/src/rocBLAS

# Clone rocblas repo
# Build client dependencies and install into /usr/local (LAPACK & GTEST)
RUN mkdir -p ${ROCBLAS_SRC_ROOT} && cd ${ROCBLAS_SRC_ROOT} && \
git clone -b develop --depth=1 https://github.com/ROCmSoftwarePlatform/rocBLAS . && \
mkdir -p build/deps && cd build/deps && \
cmake -DBUILD_BOOST=OFF ${ROCBLAS_SRC_ROOT}/deps && \
make -j $(nproc) install
# rm -rf ${ROCBLAS_SRC_ROOT}