diff --git a/Jenkinsfile b/Jenkinsfile index 76c8293a27..358b5560c4 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,7 +1,7 @@ #!/usr/bin/env groovy // Copyright (c) 2019 Advanced Micro Devices, Inc. All rights reserved. // This shared library is available at https://github.com/ROCmSoftwarePlatform/rccl -@Library('rocJenkins') _ +@Library('rocJenkins@rccl') _ // This is file for internal AMD use. // If you are interested in running your own Jenkins, please raise a github issue for assistance. @@ -35,7 +35,7 @@ rcclCI: rccl.paths.build_command = './install.sh' // Define test architectures, optional rocm version argument is available - def nodes = new dockerNodes(['RCCL'], rccl) + def nodes = new dockerNodes(['rccl && ubuntu'], rccl) boolean formatCheck = false @@ -47,7 +47,7 @@ rcclCI: def command = """#!/usr/bin/env bash set -x cd ${project.paths.project_build_prefix} - LD_LIBRARY_PATH=/opt/rocm/hcc/lib CXX= ${project.paths.build_command} -t --hip-clang + LD_LIBRARY_PATH=/opt/rocm/hcc/lib CXX= ${project.paths.build_command} -t """ platform.runCommand(this,command) @@ -59,8 +59,8 @@ rcclCI: def command = """#!/usr/bin/env bash set -x - cd ${project.paths.project_build_prefix} - ${project.paths.project_build_prefix} -r --hip-clang + cd ${project.paths.project_build_prefix}/build/release/test/ + HSA_FORCE_FINE_GRAIN_PCIE=1 ./UnitTests --gtest_output=xml --gtest_color=yes """ platform.runCommand(this,command) @@ -73,14 +73,13 @@ rcclCI: def command = """ set -x - cd ${project.paths.project_build_prefix}/build + cd ${project.paths.project_build_prefix}/build/release make package rm -rf package && mkdir -p package mv *.deb package/ - sudo dpkg -i package/*.deb """ platform.runCommand(this,command) - platform.archiveArtifacts(this, """${project.paths.project_build_prefix}/build/package/*.deb""") + platform.archiveArtifacts(this, """${project.paths.project_build_prefix}/build/release/package/*.deb""") } buildProject(rccl, formatCheck, nodes.dockerArray, compileCommand, testCommand, packageCommand) diff --git a/docker/dockerfile-build-centos b/docker/dockerfile-build-centos new file mode 100644 index 0000000000..536f30c7f0 --- /dev/null +++ b/docker/dockerfile-build-centos @@ -0,0 +1,40 @@ +# This Dockerfile provides a starting point for a ROCm installation of rccl + +# Parameters related to building rccl +ARG base_image + +FROM ${base_image} +LABEL maintainer="rccl-maintainer@amd.com" + +USER root +ARG user_uid + +# Install dependent packages +RUN yum install -y \ + sudo \ + chrpath \ + rock-dkms \ + rocm-cmake \ + centos-release-scl \ + devtoolset-7 \ + ca-certificates \ + git \ + cmake3 \ + make \ + libgomp \ + clang \ + clang-devel \ + gcc-c++ \ + pkgconfig \ + numactl-libs + +RUN echo '#!/bin/bash' | tee /etc/profile.d/devtoolset7.sh && echo \ + 'source scl_source enable devtoolset-7' >>/etc/profile.d/devtoolset7.sh + +# 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 video --shell /bin/bash jenkins && \ + echo '%video ALL=(ALL) NOPASSWD:ALL' | tee /etc/sudoers.d/sudo-nopasswd && \ + chmod 400 /etc/sudoers.d/sudo-nopasswd + diff --git a/docker/dockerfile-build-ubuntu-rock b/docker/dockerfile-build-ubuntu-rock new file mode 100644 index 0000000000..eab87449e0 --- /dev/null +++ b/docker/dockerfile-build-ubuntu-rock @@ -0,0 +1,40 @@ +# Parameters related to building rccl +ARG base_image + +FROM ${base_image} +LABEL maintainer="rccl-maintainer@amd.com" + +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 \ + chrpath \ + git \ + make \ + cmake \ + pkg-config \ + python2.7 \ + python-yaml \ + rocm-cmake \ + libboost-program-options-dev \ + libnuma1 \ + libomp-dev \ + && \ + 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 diff --git a/docker/dockerfile-install-centos b/docker/dockerfile-install-centos new file mode 100644 index 0000000000..f7d7788935 --- /dev/null +++ b/docker/dockerfile-install-centos @@ -0,0 +1,7 @@ +# Parameters related to building rccl +ARG base_image + +FROM ${base_image} +LABEL maintainer="rccl-maintainer@amd.com" + +#empty for now diff --git a/docker/dockerfile-install-ubuntu b/docker/dockerfile-install-ubuntu new file mode 100644 index 0000000000..1d03fbf2e3 --- /dev/null +++ b/docker/dockerfile-install-ubuntu @@ -0,0 +1,7 @@ +# Parameters related to building rccl +ARG base_image + +FROM ${base_image} +LABEL maintainer="rccl-maintainer@amd.com" + +#empty for now