@@ -0,0 +1,37 @@
|
|||||||
|
// This file is for internal AMD use.
|
||||||
|
// If you are interested in running your own Jenkins, please raise a github issue for assistance.
|
||||||
|
|
||||||
|
def runCompileCommand(platform, project, jobName)
|
||||||
|
{
|
||||||
|
project.paths.construct_build_prefix()
|
||||||
|
|
||||||
|
String hipclangArgs = jobName.contains('hipclang') ? '--hip-clang' : ''
|
||||||
|
def getRCCL = auxiliary.getLibrary('rccl',platform.jenkinsLabel,'develop')
|
||||||
|
|
||||||
|
def command = """#!/usr/bin/env bash
|
||||||
|
set -x
|
||||||
|
${getRCCL}
|
||||||
|
${auxiliary.exitIfNotSuccess()}
|
||||||
|
cd ${project.paths.project_build_prefix}
|
||||||
|
${project.paths.build_command}
|
||||||
|
${auxiliary.exitIfNotSuccess()}
|
||||||
|
"""
|
||||||
|
|
||||||
|
platform.runCommand(this,command)
|
||||||
|
}
|
||||||
|
|
||||||
|
def runTestCommand (platform, project)
|
||||||
|
{
|
||||||
|
String sudo = auxiliary.sudo(platform.jenkinsLabel)
|
||||||
|
|
||||||
|
def command = """#!/usr/bin/env bash
|
||||||
|
set -x
|
||||||
|
cd ${project.paths.project_build_prefix}
|
||||||
|
python3 -m pytest -k "not MPI" --verbose --junitxml=./testreport.xml
|
||||||
|
"""
|
||||||
|
|
||||||
|
platform.runCommand(this, command)
|
||||||
|
junit "${project.paths.project_build_prefix}/build/release/test/*.xml"
|
||||||
|
}
|
||||||
|
|
||||||
|
return this
|
||||||
@@ -0,0 +1,81 @@
|
|||||||
|
#!/usr/bin/env groovy
|
||||||
|
// This shared library is available at https://github.com/ROCmSoftwarePlatform/rocJENKINS/
|
||||||
|
@Library('rocJenkins@pong') _
|
||||||
|
|
||||||
|
// This is file for internal AMD use.
|
||||||
|
// If you are interested in running your own Jenkins, please raise a github issue for assistance.
|
||||||
|
|
||||||
|
import com.amd.project.*
|
||||||
|
import com.amd.docker.*
|
||||||
|
import java.nio.file.Path
|
||||||
|
|
||||||
|
def runCI =
|
||||||
|
{
|
||||||
|
nodeDetails, jobName->
|
||||||
|
|
||||||
|
def prj = new rocProject('rccl-tests', 'PreCheckin')
|
||||||
|
prj.paths.build_command = './install.sh'
|
||||||
|
|
||||||
|
// Define test architectures, optional rocm version argument is available
|
||||||
|
def nodes = new dockerNodes(nodeDetails, jobName, prj)
|
||||||
|
|
||||||
|
boolean formatCheck = false
|
||||||
|
|
||||||
|
def commonGroovy
|
||||||
|
|
||||||
|
def compileCommand =
|
||||||
|
{
|
||||||
|
platform, project->
|
||||||
|
|
||||||
|
commonGroovy = load "${project.paths.project_src_prefix}/.jenkins/common.groovy"
|
||||||
|
commonGroovy.runCompileCommand(platform, project, jobName)
|
||||||
|
}
|
||||||
|
|
||||||
|
def testCommand =
|
||||||
|
{
|
||||||
|
platform, project->
|
||||||
|
|
||||||
|
commonGroovy.runTestCommand(platform, project)
|
||||||
|
}
|
||||||
|
|
||||||
|
buildProject(prj, formatCheck, nodes.dockerArray, compileCommand, testCommand, null)
|
||||||
|
}
|
||||||
|
|
||||||
|
ci: {
|
||||||
|
String urlJobName = auxiliary.getTopJobName(env.BUILD_URL)
|
||||||
|
|
||||||
|
def propertyList = ["compute-rocm-dkms-no-npi":[pipelineTriggers([cron('0 1 * * 0')])],
|
||||||
|
"compute-rocm-dkms-no-npi-hipclang":[pipelineTriggers([cron('0 1 * * 0')])],
|
||||||
|
"rocm-docker":[]]
|
||||||
|
propertyList = auxiliary.appendPropertyList(propertyList)
|
||||||
|
|
||||||
|
def jobNameList = ["compute-rocm-dkms-no-npi":([ubuntu16:['rccl906']]),
|
||||||
|
"rocm-docker":([ubuntu16:['rccl906']])]
|
||||||
|
jobNameList = auxiliary.appendJobNameList(jobNameList)
|
||||||
|
jobNameList['compute-rocm-dkms-no-npi-hipclang'] = [ubuntu16:['rccl906']]
|
||||||
|
|
||||||
|
propertyList.each
|
||||||
|
{
|
||||||
|
jobName, property->
|
||||||
|
if (urlJobName == jobName)
|
||||||
|
properties(auxiliary.addCommonProperties(property))
|
||||||
|
}
|
||||||
|
|
||||||
|
jobNameList.each
|
||||||
|
{
|
||||||
|
jobName, nodeDetails->
|
||||||
|
if (urlJobName == jobName)
|
||||||
|
stage(jobName) {
|
||||||
|
runCI(nodeDetails, jobName)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// For url job names that are not listed by the jobNameList i.e. compute-rocm-dkms-no-npi-1901
|
||||||
|
if(!jobNameList.keySet().contains(urlJobName))
|
||||||
|
{
|
||||||
|
properties(auxiliary.addCommonProperties([pipelineTriggers([cron('0 1 * * *')])]))
|
||||||
|
stage(urlJobName) {
|
||||||
|
runCI([ubuntu16:['rccl906']], urlJobName)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
# Copyright (c) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
|
||||||
|
# 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 --nogpgcheck \
|
||||||
|
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
|
||||||
|
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
# Copyright (c) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
|
||||||
|
# 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 \
|
||||||
|
python3-pytest \
|
||||||
|
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 video --shell /bin/bash jenkins && \
|
||||||
|
mkdir -p /etc/sudoers.d/ && \
|
||||||
|
echo '%video ALL=(ALL) NOPASSWD:ALL' | tee /etc/sudoers.d/sudo-nopasswd
|
||||||
|
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
# Copyright (c) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
|
||||||
|
# Parameters related to building rccl
|
||||||
|
ARG base_image
|
||||||
|
|
||||||
|
FROM ${base_image}
|
||||||
|
LABEL maintainer="rccl-maintainer@amd.com"
|
||||||
|
|
||||||
|
#empty for now
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
# Copyright (c) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
|
||||||
|
# Parameters related to building rccl
|
||||||
|
ARG base_image
|
||||||
|
|
||||||
|
FROM ${base_image}
|
||||||
|
LABEL maintainer="rccl-maintainer@amd.com"
|
||||||
|
|
||||||
|
#empty for now
|
||||||
Fai riferimento in un nuovo problema
Block a user