-
Notifications
You must be signed in to change notification settings - Fork 197
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adding cpu ci for conda build #482
Merged
rapids-bot
merged 4 commits into
rapidsai:branch-22.04
from
cjnolet:imp-2204-ci_cpu_build
Feb 2, 2022
Merged
Changes from all commits
Commits
Show all changes
4 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,121 @@ | ||
#!/bin/bash | ||
# Copyright (c) 2022, NVIDIA CORPORATION. | ||
######################################### | ||
# RAFT CPU conda build script for CI # | ||
######################################### | ||
set -e | ||
|
||
# Set path and build parallel level | ||
# openmpi dir is required on CentOS for finding MPI libs from cmake | ||
if [[ -e /etc/os-release ]] && (grep -qi centos /etc/os-release); then | ||
export PATH=/opt/conda/bin:/usr/local/cuda/bin:/usr/lib64/openmpi/bin:$PATH | ||
else | ||
export PATH=/opt/conda/bin:/usr/local/cuda/bin:$PATH | ||
fi | ||
export PARALLEL_LEVEL=${PARALLEL_LEVEL:-4} | ||
|
||
# Set home to the job's workspace | ||
export HOME=$WORKSPACE | ||
|
||
# Switch to project root; also root of repo checkout | ||
cd $WORKSPACE | ||
|
||
# If nightly build, append current YYMMDD to version | ||
if [[ "$BUILD_MODE" = "branch" && "$SOURCE_BRANCH" = branch-* ]] ; then | ||
export VERSION_SUFFIX=`date +%y%m%d` | ||
fi | ||
|
||
# Setup 'gpuci_conda_retry' for build retries (results in 2 total attempts) | ||
export GPUCI_CONDA_RETRY_MAX=1 | ||
export GPUCI_CONDA_RETRY_SLEEP=30 | ||
|
||
# Use Ninja to build | ||
export CMAKE_GENERATOR="Ninja" | ||
export CONDA_BLD_DIR="${WORKSPACE}/.conda-bld" | ||
|
||
# ucx-py version | ||
export UCX_PY_VERSION='0.25.*' | ||
|
||
################################################################################ | ||
# SETUP - Check environment | ||
################################################################################ | ||
|
||
gpuci_logger "Check environment variables" | ||
env | ||
|
||
gpuci_logger "Activate conda env" | ||
. /opt/conda/etc/profile.d/conda.sh | ||
conda activate rapids | ||
|
||
# Remove rapidsai-nightly channel if we are building main branch | ||
if [ "$SOURCE_BRANCH" = "main" ]; then | ||
conda config --system --remove channels rapidsai-nightly | ||
fi | ||
|
||
gpuci_logger "Check versions" | ||
python --version | ||
$CC --version | ||
$CXX --version | ||
|
||
gpuci_logger "Check conda environment" | ||
conda info | ||
conda config --show-sources | ||
conda list --show-channel-urls | ||
|
||
# FIX Added to deal with Anancoda SSL verification issues during conda builds | ||
conda config --set ssl_verify False | ||
|
||
# FIXME: for now, force the building of all packages so they are built on a | ||
# machine with a single CUDA version, then have the gpu/build.sh script simply | ||
# install. This should eliminate a mismatch between different CUDA versions on | ||
# cpu vs. gpu builds that is problematic with CUDA 11.5 Enhanced Compat. | ||
if [ "$BUILD_LIBRAFT" == '1' ]; then | ||
BUILD_PYRAFT=1 | ||
# If we are doing CUDA + Python builds, libraft package is located at ${CONDA_BLD_DIR} | ||
CONDA_LOCAL_CHANNEL="${CONDA_BLD_DIR}" | ||
else | ||
# If we are doing Python builds only, libraft package is placed here by Project Flash | ||
CONDA_LOCAL_CHANNEL="ci/artifacts/raft/cpu/.conda-bld/" | ||
fi | ||
|
||
|
||
############################################################################### | ||
# BUILD - Conda package builds | ||
############################################################################### | ||
|
||
if [ "$BUILD_LIBRAFT" == '1' ]; then | ||
gpuci_logger "Building conda packages for libraft-nn, libraft-distance, and libraft-headers" | ||
if [[ -z "$PROJECT_FLASH" || "$PROJECT_FLASH" == "0" ]]; then | ||
gpuci_conda_retry build --no-build-id --croot ${CONDA_BLD_DIR} conda/recipes/libraft-nn | ||
gpuci_conda_retry build --no-build-id --croot ${CONDA_BLD_DIR} conda/recipes/libraft-distance | ||
gpuci_conda_retry build --no-build-id --croot ${CONDA_BLD_DIR} conda/recipes/libraft-headers | ||
else | ||
gpuci_conda_retry build --no-build-id --croot ${CONDA_BLD_DIR} --dirty --no-remove-work-dir conda/recipes/libraft-nn | ||
gpuci_conda_retry build --no-build-id --croot ${CONDA_BLD_DIR} --dirty --no-remove-work-dir conda/recipes/libraft-distance | ||
gpuci_conda_retry build --no-build-id --croot ${CONDA_BLD_DIR} --dirty --no-remove-work-dir conda/recipes/libraft-headers | ||
mkdir -p ${CONDA_BLD_DIR}/libraft | ||
mv ${CONDA_BLD_DIR}/work ${CONDA_BLD_DIR}/libraft/work | ||
fi | ||
else | ||
gpuci_logger "SKIPPING build of conda packages for libraft-nn, libraft-distance and libraft-headers" | ||
fi | ||
|
||
if [ "$BUILD_raft" == "1" ]; then | ||
gpuci_logger "Building conda packages for pyraft" | ||
if [[ -z "$PROJECT_FLASH" || "$PROJECT_FLASH" == "0" ]]; then | ||
gpuci_conda_retry build --no-build-id --croot ${CONDA_BLD_DIR} conda/recipes/pyraft --python=$PYTHON | ||
else | ||
gpuci_conda_retry build --no-build-id --croot ${CONDA_BLD_DIR} conda/recipes/pyraft -c ${CONDA_LOCAL_CHANNEL} --dirty --no-remove-work-dir --python=$PYTHON | ||
mkdir -p ${CONDA_BLD_DIR}/pyraft | ||
mv ${CONDA_BLD_DIR}/work ${CONDA_BLD_DIR}/pyraft/work | ||
fi | ||
else | ||
gpuci_logger "SKIPPING build of conda packages for pyraft" | ||
fi | ||
|
||
################################################################################ | ||
# UPLOAD - Conda packages | ||
################################################################################ | ||
|
||
gpuci_logger "Upload conda packages" | ||
source ci/cpu/upload.sh |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
#!/usr/bin/env bash | ||
# Copyright (c) 2022, NVIDIA CORPORATION. | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
|
||
if [[ -z "$PROJECT_FLASH" || "$PROJECT_FLASH" == "0" ]]; then | ||
#If project flash is not activate, always build both | ||
export BUILD_PYRAFT=1 | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Should be |
||
export BUILD_LIBRAFT=1 | ||
fi | ||
|
||
export UPLOAD_LIBRAFT=1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
#!/bin/bash | ||
# Copyright (c) 2022, NVIDIA CORPORATION. | ||
# | ||
# Adopted from https://github.com/tmcdonell/travis-scripts/blob/dfaac280ac2082cd6bcaba3217428347899f2975/update-accelerate-buildbot.sh | ||
|
||
set -e | ||
|
||
# Setup 'gpuci_retry' for upload retries (results in 4 total attempts) | ||
export GPUCI_RETRY_MAX=3 | ||
export GPUCI_RETRY_SLEEP=30 | ||
|
||
# Set default label options if they are not defined elsewhere | ||
export LABEL_OPTION=${LABEL_OPTION:-"--label main"} | ||
|
||
# Skip uploads unless BUILD_MODE == "branch" | ||
if [ ${BUILD_MODE} != "branch" ]; then | ||
echo "Skipping upload" | ||
return 0 | ||
fi | ||
|
||
# Skip uploads if there is no upload key | ||
if [ -z "$MY_UPLOAD_KEY" ]; then | ||
echo "No upload key" | ||
return 0 | ||
fi | ||
|
||
################################################################################ | ||
# SETUP - Get conda file output locations | ||
################################################################################ | ||
|
||
gpuci_logger "Get conda file output locations" | ||
|
||
export LIBRAFT_NN_FILE=`conda build --no-build-id --croot ${CONDA_BLD_DIR} conda/recipes/libraft_nn --output` | ||
export LIBRAFT_DISTANCE_FILE=`conda build --no-build-id --croot ${CONDA_BLD_DIR} conda/recipes/libraft_distance --output` | ||
export LIBRAFT_HEADERS_FILE=`conda build --croot ${CONDA_BLD_DIR} conda/recipes/libraft_headers --output` | ||
export PYRAFT_FILE=`conda build --croot ${CONDA_BLD_DIR} conda/recipes/pyraft --python=$PYTHON --output` | ||
|
||
################################################################################ | ||
# UPLOAD - Conda packages | ||
################################################################################ | ||
|
||
gpuci_logger "Starting conda uploads" | ||
|
||
if [[ "$BUILD_LIBRAFT" == "1" && "$UPLOAD_LIBRAFT" == "1" ]]; then | ||
# libraft-nn | ||
test -e ${LIBRAFT_NN_FILE} | ||
echo "Upload libraft-nn" | ||
echo ${LIBRAFT_NN_FILE} | ||
gpuci_retry anaconda -t ${MY_UPLOAD_KEY} upload -u ${CONDA_USERNAME:-rapidsai} ${LABEL_OPTION} --skip-existing ${LIBRAFT_NN_FILE} --no-progress | ||
|
||
# libraft-distance | ||
test -e ${LIBRAFT_DISTANCE_FILE} | ||
echo "Upload libraft-distance" | ||
echo ${LIBRAFT_DISTANCE_FILE} | ||
gpuci_retry anaconda -t ${MY_UPLOAD_KEY} upload -u ${CONDA_USERNAME:-rapidsai} ${LABEL_OPTION} --skip-existing ${LIBRAFT_DISTANCE_FILE} --no-progress | ||
|
||
# libraft-headers | ||
test -e ${LIBRAFT_HEADERS_FILE} | ||
echo "Upload libraft-nn" | ||
echo ${LIBRAFT_HEADERS_FILE} | ||
gpuci_retry anaconda -t ${MY_UPLOAD_KEY} upload -u ${CONDA_USERNAME:-rapidsai} ${LABEL_OPTION} --skip-existing ${LIBRAFT_HEADERS_FILE} --no-progress | ||
fi | ||
|
||
if [[ "$BUILD_PYRAFT" == "1" ]]; then | ||
test -e ${PYRAFT_FILE} | ||
echo "Upload pyraft" | ||
echo ${PYRAFT_FILE} | ||
gpuci_retry anaconda -t ${MY_UPLOAD_KEY} upload -u ${CONDA_USERNAME:-rapidsai} ${LABEL_OPTION} --skip-existing ${PYRAFT_FILE} --no-progress | ||
fi |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should be
BUILD_RAFT