Skip to content
This repository was archived by the owner on Nov 17, 2023. It is now read-only.

Update cuda versions and remove deprecated versions. #21215

Open
wants to merge 7 commits into
base: master
Choose a base branch
from
Open
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
9 changes: 8 additions & 1 deletion .github/workflows/license_check.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
name: license check

on: [push, pull_request]
on:
push:
branches:
- master
pull_request:
branches:
- master


defaults:
run:
9 changes: 8 additions & 1 deletion .github/workflows/link_check.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
name: link check

on: [push, pull_request]
on:
push:
branches:
- master
pull_request:
branches:
- master


defaults:
run:
8 changes: 7 additions & 1 deletion .github/workflows/os_x_mklbuild.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
name: mkl continuous build

on: [push, pull_request]
on:
push:
branches:
- master
pull_request:
branches:
- master

jobs:
macosx-x86_64:
9 changes: 8 additions & 1 deletion .github/workflows/os_x_staticbuild.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
name: continuous build

on: [push, pull_request]
on:
push:
branches:
- master
pull_request:
branches:
- master


jobs:
macosx-x86_64:
2 changes: 1 addition & 1 deletion cd/Jenkinsfile_cd_pipeline
Original file line number Diff line number Diff line change
@@ -36,7 +36,7 @@ pipeline {

parameters {
// Release parameters
string(defaultValue: "cpu,native,cu101,cu102,cu110,cu112", description: "Comma separated list of variants", name: "MXNET_VARIANTS")
string(defaultValue: "cpu,native,cu118", description: "Comma separated list of variants", name: "MXNET_VARIANTS")
booleanParam(defaultValue: false, description: 'Whether this is a release build or not', name: "RELEASE_BUILD")
}

2 changes: 1 addition & 1 deletion cd/Jenkinsfile_release_job
Original file line number Diff line number Diff line change
@@ -43,7 +43,7 @@ pipeline {
// any disruption caused by different COMMIT_ID values chaning the job parameter configuration on
// Jenkins.
string(defaultValue: "mxnet_lib", description: "Pipeline to build", name: "RELEASE_JOB_TYPE")
string(defaultValue: "cpu,native,cu101,cu102,cu110,cu112", description: "Comma separated list of variants", name: "MXNET_VARIANTS")
string(defaultValue: "cpu,native,cu118", description: "Comma separated list of variants", name: "MXNET_VARIANTS")
booleanParam(defaultValue: false, description: 'Whether this is a release build or not', name: "RELEASE_BUILD")
string(defaultValue: "nightly", description: "String used for naming docker images", name: "VERSION")
}
13 changes: 5 additions & 8 deletions cd/utils/mxnet_base_image.sh
Original file line number Diff line number Diff line change
@@ -21,17 +21,14 @@
mxnet_variant=${1:?"Please specify the mxnet variant as the first parameter"}

case ${mxnet_variant} in
cu101*)
echo "nvidia/cuda:10.1-cudnn7-runtime-ubuntu18.04"
;;
cu102*)
echo "nvidia/cuda:10.2-cudnn7-runtime-ubuntu18.04"
;;
cu110*)
echo "nvidia/cuda:11.0-cudnn8-runtime-ubuntu18.04"
echo "nvidia/cuda:11.0.3-cudnn8-runtime-ubuntu18.04"
;;
cu112*)
echo "nvidia/cuda:11.2.0-cudnn8-runtime-ubuntu18.04"
echo "nvidia/cuda:11.2.2-cudnn8-runtime-ubuntu18.04"
;;
cu118*)
echo "nvidia/cuda:11.8.0-cudnn8-runtime-ubuntu18.04"
;;
cpu)
echo "ubuntu:18.04"
51 changes: 17 additions & 34 deletions ci/docker/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -41,26 +41,6 @@ services:
BASE_IMAGE: centos:7
cache_from:
- ${DOCKER_CACHE_REGISTRY}/build.centos7_cpu:latest
centos7_gpu_cu101:
image: ${DOCKER_CACHE_REGISTRY}/build.centos7_gpu_cu101:latest
build:
context: .
dockerfile: Dockerfile.build.centos7
target: base
args:
BASE_IMAGE: nvidia/cuda:10.1-cudnn8-devel-centos7
cache_from:
- ${DOCKER_CACHE_REGISTRY}/build.centos7_gpu_cu101:latest
centos7_gpu_cu102:
image: ${DOCKER_CACHE_REGISTRY}/build.centos7_gpu_cu102:latest
build:
context: .
dockerfile: Dockerfile.build.centos7
target: base
args:
BASE_IMAGE: nvidia/cuda:10.2-cudnn8-devel-centos7
cache_from:
- ${DOCKER_CACHE_REGISTRY}/build.centos7_gpu_cu102:latest
centos7_gpu_cu110:
image: ${DOCKER_CACHE_REGISTRY}/build.centos7_gpu_cu110:latest
build:
@@ -78,9 +58,19 @@ services:
dockerfile: Dockerfile.build.centos7
target: base
args:
BASE_IMAGE: nvidia/cuda:11.2.0-cudnn8-devel-centos7
BASE_IMAGE: nvidia/cuda:11.2.2-cudnn8-devel-centos7
cache_from:
- ${DOCKER_CACHE_REGISTRY}/build.centos7_gpu_cu112:latest
centos7_gpu_cu118:
image: ${DOCKER_CACHE_REGISTRY}/build.centos7_gpu_cu118:latest
build:
context: .
dockerfile: Dockerfile.build.centos7
target: base
args:
BASE_IMAGE: nvidia/cuda:11.8.0-cudnn8-devel-centos7
cache_from:
- ${DOCKER_CACHE_REGISTRY}/build.centos7_gpu_cu118:latest
###################################################################################################
# Dockerfile.build.ubuntu based images. On Ubuntu we test more recent
# toolchain and dependency versions compared to CentOS7. We attempt to update
@@ -105,20 +95,20 @@ services:
dockerfile: Dockerfile.build.ubuntu
target: gpu
args:
BASE_IMAGE: nvidia/cuda:11.4.0-cudnn8-devel-ubuntu20.04
BASE_IMAGE: nvidia/cuda:11.4.3-cudnn8-devel-ubuntu20.04
TRT_VERSION: 8.2.4-1+cuda11.4
cache_from:
- ${DOCKER_CACHE_REGISTRY}/build.ubuntu_tensorrt_cu114:latest
ubuntu_gpu_cu111:
image: ${DOCKER_CACHE_REGISTRY}/build.ubuntu_gpu_cu111:latest
ubuntu_gpu_cu118:
image: ${DOCKER_CACHE_REGISTRY}/build.ubuntu_gpu_cu118:latest
build:
context: .
dockerfile: Dockerfile.build.ubuntu
target: gpu
args:
BASE_IMAGE: nvidia/cuda:11.1.1-cudnn8-devel-ubuntu20.04
BASE_IMAGE: nvidia/cuda:11.8.0-cudnn8-devel-ubuntu20.04
cache_from:
- ${DOCKER_CACHE_REGISTRY}/build.ubuntu_gpu_cu111:latest
- ${DOCKER_CACHE_REGISTRY}/build.ubuntu_gpu_cu118:latest
###################################################################################################
# Dockerfile.build.android based images used for testing cross-compilation for plain ARM
###################################################################################################
@@ -204,19 +194,12 @@ services:
context: .
dockerfile: Dockerfile.publish.test.centos7
args:
BASE_IMAGE: nvidia/cuda:9.2-cudnn7-devel-centos7
BASE_IMAGE: nvidia/cuda:11.8.0-cudnn8-devel-centos7
cache_from:
- ${DOCKER_CACHE_REGISTRY}/publish.test.centos7_gpu:latest
###################################################################################################
# Miscellaneous containers
###################################################################################################
jetson:
image: ${DOCKER_CACHE_REGISTRY}/build.jetson:latest
build:
context: .
dockerfile: Dockerfile.build.jetson
cache_from:
- ${DOCKER_CACHE_REGISTRY}/build.jetson:latest
ubuntu_cpu_jekyll:
image: ${DOCKER_CACHE_REGISTRY}/build.ubuntu_cpu_jekyll:latest
build:
12 changes: 5 additions & 7 deletions ci/docker/runtime_functions.sh
Original file line number Diff line number Diff line change
@@ -111,7 +111,7 @@ gather_licenses() {

# Compiles the dynamic mxnet library
# Parameters:
# $1 -> mxnet_variant: the mxnet variant to build, e.g. cpu, native, cu101, cu102, etc.
# $1 -> mxnet_variant: the mxnet variant to build, e.g. cpu, native, cu112, cu118, etc.
build_dynamic_libmxnet() {
set -ex

@@ -746,8 +746,7 @@ sanity_cpp() {
}

sanity_python_prospector() {
set -e
set +x
set -ex

# Run Prospector
python3 -m prospector --profile prospector.yaml | tee prospector-output.txt
@@ -761,8 +760,7 @@ sanity_python_prospector() {
}

sanity_clang() {
set -e
set +x
set -ex
# .github/workgflows/greetings.yml passes BASE_SHA, GITHUB_RUN_ID, GITHUB_BASE_REF for pull requests.
BASE_SHA="${GITHUB_PR_BASE_SHA}"
GITHUB_RUN_ID="${GITHUB_PR_RUN_ID}"
@@ -1504,10 +1502,10 @@ build_static_python_cpu() {
popd
}

build_static_python_cu102() {
build_static_python_cu118() {
set -ex
pushd .
export mxnet_variant=cu102
export mxnet_variant=cu118
source /opt/rh/devtoolset-8/enable
source /opt/rh/rh-python38/enable
# Opt in to newer GCC C++ ABI. devtoolset defaults to ABI Version 2.
42 changes: 21 additions & 21 deletions ci/jenkins/Jenkins_steps.groovy
Original file line number Diff line number Diff line change
@@ -151,7 +151,7 @@ def compile_unix_int64_gpu(lib_name) {
ws('workspace/build-gpu-int64') {
timeout(time: max_time, unit: 'MINUTES') {
utils.init_git()
utils.docker_run('ubuntu_gpu_cu111', 'build_ubuntu_gpu_large_tensor', false)
utils.docker_run('ubuntu_gpu_cu118', 'build_ubuntu_gpu_large_tensor', false)
utils.pack_lib(lib_name, mx_cmake_lib)
}
}
@@ -207,7 +207,7 @@ def compile_unix_onednn_gpu(lib_name) {
ws('workspace/build-onednn-gpu') {
timeout(time: max_time, unit: 'MINUTES') {
utils.init_git()
utils.docker_run('ubuntu_gpu_cu111', 'build_ubuntu_gpu_onednn', false)
utils.docker_run('ubuntu_gpu_cu118', 'build_ubuntu_gpu_onednn', false)
utils.pack_lib(lib_name, mx_onednn_lib)
}
}
@@ -221,7 +221,7 @@ def compile_unix_onednn_nocudnn_gpu(lib_name) {
ws('workspace/build-onednn-gpu-nocudnn') {
timeout(time: max_time, unit: 'MINUTES') {
utils.init_git()
utils.docker_run('ubuntu_gpu_cu111', 'build_ubuntu_gpu_onednn_nocudnn', false)
utils.docker_run('ubuntu_gpu_cu118', 'build_ubuntu_gpu_onednn_nocudnn', false)
utils.pack_lib(lib_name, mx_onednn_lib)
}
}
@@ -235,7 +235,7 @@ def compile_unix_full_gpu(lib_name) {
ws('workspace/build-gpu') {
timeout(time: max_time, unit: 'MINUTES') {
utils.init_git()
utils.docker_run('ubuntu_gpu_cu111', 'build_ubuntu_gpu', false)
utils.docker_run('ubuntu_gpu_cu118', 'build_ubuntu_gpu', false)
utils.pack_lib(lib_name, mx_lib_cpp_examples)
}
}
@@ -249,7 +249,7 @@ def compile_unix_full_gpu_debug(lib_name) {
ws('workspace/build-gpu') {
timeout(time: max_time, unit: 'MINUTES') {
utils.init_git()
utils.docker_run('ubuntu_gpu_cu111', 'build_ubuntu_gpu_debug', false)
utils.docker_run('ubuntu_gpu_cu118', 'build_ubuntu_gpu_debug', false)
utils.pack_lib(lib_name, mx_lib_cpp_examples)
}
}
@@ -304,7 +304,7 @@ def compile_centos7_gpu(lib_name) {
ws('workspace/build-centos7-gpu') {
timeout(time: max_time, unit: 'MINUTES') {
utils.init_git()
utils.docker_run('centos7_gpu_cu102', 'build_centos7_gpu', false)
utils.docker_run('centos7_gpu_cu118', 'build_centos7_gpu', false)
utils.pack_lib(lib_name, mx_lib)
}
}
@@ -508,7 +508,7 @@ def compile_unix_clang10_cuda_werror(lib_name) {
ws('workspace/build-cpu-clang10') {
timeout(time: max_time, unit: 'MINUTES') {
utils.init_git()
utils.docker_run('ubuntu_gpu_cu111', 'build_ubuntu_gpu_clang10_werror', false)
utils.docker_run('ubuntu_gpu_cu118', 'build_ubuntu_gpu_clang10_werror', false)
utils.pack_lib(lib_name, mx_lib)
}
}
@@ -633,7 +633,7 @@ def compile_static_python_gpu() {
ws('workspace/ut-publish-python-gpu') {
timeout(time: max_time, unit: 'MINUTES') {
utils.init_git()
utils.docker_run('centos7_gpu_cu102', 'build_static_python_cu102')
utils.docker_run('centos7_gpu_cu118', 'build_static_python_cu118')
}
}
}
@@ -646,7 +646,7 @@ def compile_static_cd_gpu(lib_name) {
ws('workspace/build-cd-static/gpu') {
timeout(time: max_time, unit: 'MINUTES') {
utils.init_git()
utils.docker_run('centos7_gpu_cu102', 'build_static_libmxnet cu102', false)
utils.docker_run('centos7_gpu_cu118', 'build_static_libmxnet cu118', false)
utils.pack_lib(lib_name, mx_cd_lib)
}
}
@@ -706,7 +706,7 @@ def test_unix_python3_gpu(lib_name) {
ws('workspace/ut-python3-gpu') {
try {
utils.unpack_and_init(lib_name, mx_lib_cython)
python3_gpu_ut_cython('ubuntu_gpu_cu111')
python3_gpu_ut_cython('ubuntu_gpu_cu118')
utils.publish_test_coverage()
} finally {
utils.collect_test_results_unix('tests_gpu.xml', 'tests_python3_gpu.xml')
@@ -722,7 +722,7 @@ def test_unix_python3_ampere_gpu(lib_name) {
ws('workspace/ut-python3-gpu') {
try {
utils.unpack_and_init(lib_name, mx_lib_cython)
python3_gpu_ut_cython('ubuntu_gpu_cu111')
python3_gpu_ut_cython('ubuntu_gpu_cu118')
utils.publish_test_coverage()
} finally {
utils.collect_test_results_unix('tests_gpu.xml', 'tests_python3_ampere_gpu.xml')
@@ -820,7 +820,7 @@ def test_unix_python3_onednn_gpu(lib_name) {
ws('workspace/ut-python3-onednn-gpu') {
try {
utils.unpack_and_init(lib_name, mx_onednn_lib)
python3_gpu_ut('ubuntu_gpu_cu111')
python3_gpu_ut('ubuntu_gpu_cu118')
utils.publish_test_coverage()
} finally {
utils.collect_test_results_unix('tests_gpu.xml', 'tests_python3_onednn_gpu.xml')
@@ -836,7 +836,7 @@ def test_unix_python3_onednn_nocudnn_gpu(lib_name) {
ws('workspace/ut-python3-onednn-gpu-nocudnn') {
try {
utils.unpack_and_init(lib_name, mx_onednn_lib)
python3_gpu_ut_nocudnn('ubuntu_gpu_cu111')
python3_gpu_ut_nocudnn('ubuntu_gpu_cu118')
utils.publish_test_coverage()
} finally {
utils.collect_test_results_unix('tests_gpu.xml', 'tests_python3_onednn_gpu_nocudnn.xml')
@@ -880,7 +880,7 @@ def test_unix_byteps_gpu(lib_name) {
ws('workspace/it-byteps') {
timeout(time: max_time, unit: 'MINUTES') {
utils.unpack_and_init(lib_name, mx_lib)
utils.docker_run('ubuntu_gpu_cu111', 'integrationtest_ubuntu_gpu_byteps', true, '32768m')
utils.docker_run('ubuntu_gpu_cu118', 'integrationtest_ubuntu_gpu_byteps', true, '32768m')
utils.publish_test_coverage()
}
}
@@ -894,7 +894,7 @@ def test_unix_distributed_kvstore_gpu(lib_name) {
ws('workspace/it-dist-kvstore') {
timeout(time: max_time, unit: 'MINUTES') {
utils.unpack_and_init(lib_name, mx_lib)
utils.docker_run('ubuntu_gpu_cu111', 'integrationtest_ubuntu_gpu_dist_kvstore', true)
utils.docker_run('ubuntu_gpu_cu118', 'integrationtest_ubuntu_gpu_dist_kvstore', true)
utils.publish_test_coverage()
}
}
@@ -908,7 +908,7 @@ def test_unix_cpp_package_gpu(lib_name) {
ws('workspace/it-cpp-package-gpu') {
timeout(time: max_time, unit: 'MINUTES') {
utils.unpack_and_init(lib_name, mx_lib_cpp_examples)
utils.docker_run('ubuntu_gpu_cu111', 'integrationtest_ubuntu_cpp_package_gpu', true)
utils.docker_run('ubuntu_gpu_cu118', 'integrationtest_ubuntu_cpp_package_gpu', true)
utils.publish_test_coverage()
}
}
@@ -922,7 +922,7 @@ def test_unix_python3_data_interchange_gpu(lib_name) {
ws('workspace/it-data-interchange') {
timeout(time: max_time, unit: 'MINUTES') {
utils.unpack_and_init(lib_name, mx_lib)
utils.docker_run('ubuntu_gpu_cu111', 'test_python3_data_interchange_gpu', true)
utils.docker_run('ubuntu_gpu_cu118', 'test_python3_data_interchange_gpu', true)
utils.publish_test_coverage()
}
}
@@ -982,7 +982,7 @@ def test_centos7_python3_gpu(lib_name) {
timeout(time: max_time, unit: 'MINUTES') {
try {
utils.unpack_and_init(lib_name, mx_lib)
utils.docker_run('centos7_gpu_cu102', 'unittest_centos7_gpu', true)
utils.docker_run('centos7_gpu_cu118', 'unittest_centos7_gpu', true)
utils.publish_test_coverage()
} finally {
utils.collect_test_results_unix('tests_gpu.xml', 'tests_python3_centos7_gpu.xml')
@@ -999,7 +999,7 @@ def test_centos7_python3_cd_gpu(lib_name) {
ws('workspace/test-cd-static/gpu') {
timeout(time: max_time, unit: 'MINUTES') {
utils.unpack_and_init(lib_name, mx_cd_lib)
utils.docker_run('centos7_gpu_cu102', 'cd_unittest_ubuntu cu102', true)
utils.docker_run('centos7_gpu_cu118', 'cd_unittest_ubuntu cu118', true)
}
}
}
@@ -1012,7 +1012,7 @@ def test_centos7_pypi_package_cd_gpu(lib_name) {
ws('workspace/test-cd-pypi/gpu') {
timeout(time: max_time, unit: 'MINUTES') {
utils.unpack_and_init(lib_name, mx_cd_lib)
utils.docker_run('centos7_gpu_cu102', 'ci_package_pypi cu102', true)
utils.docker_run('centos7_gpu_cu118', 'ci_package_pypi cu118', true)
}
}
}
@@ -1122,7 +1122,7 @@ def docs_python(lib_name) {
ws('workspace/docs') {
timeout(time: max_time, unit: 'MINUTES') {
utils.unpack_and_init(lib_name, mx_lib_cython)
utils.docker_run('ubuntu_gpu_cu111', 'build_python_docs', true)
utils.docker_run('ubuntu_gpu_cu118', 'build_python_docs', true)
if (should_pack_website()) {
utils.pack_lib('python-artifacts', 'docs/_build/python-artifacts.tgz', false)
}
2 changes: 1 addition & 1 deletion ci/jenkins/Jenkinsfile_edge
Original file line number Diff line number Diff line change
@@ -34,7 +34,7 @@ utils.assign_node_labels(utility: 'utility', linux_cpu: 'mxnetlinux-cpu', linux_
utils.main_wrapper(
core_logic: {
utils.parallel_stage('Build', [
custom_steps.compile_armv8_jetson_gpu(),
// custom_steps.compile_armv8_jetson_gpu(),
custom_steps.compile_armv7_cpu('armv7'),
custom_steps.compile_armv6_cpu('armv6'),
custom_steps.compile_armv8_cpu('armv8'),
36 changes: 36 additions & 0 deletions config/distribution/linux_cu118.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you 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.

set(CMAKE_BUILD_TYPE "Distribution" CACHE STRING "Build type")
set(CFLAGS "-mno-avx" CACHE STRING "CFLAGS")
set(CXXFLAGS "-mno-avx" CACHE STRING "CXXFLAGS")

set(USE_BLAS "open" CACHE STRING "BLAS Vendor")
set(USE_CUDA ON CACHE BOOL "Build with CUDA support")
set(USE_CUDNN ON CACHE BOOL "Build with CUDNN support")
set(USE_NCCL ON CACHE BOOL "Build with NCCL support")
set(USE_OPENCV ON CACHE BOOL "Build with OpenCV support")
set(USE_OPENMP ON CACHE BOOL "Build with Openmp support")
set(USE_ONEDNN ON CACHE BOOL "Build with oneDNN support")
set(USE_LAPACK ON CACHE BOOL "Build with lapack support")
set(USE_TVM_OP OFF CACHE BOOL "Enable use of TVM operator build system.")
set(USE_SSE ON CACHE BOOL "Build with x86 SSE instruction support")
set(USE_F16C OFF CACHE BOOL "Build with x86 F16C instruction support")
set(USE_LIBJPEG_TURBO ON CACHE BOOL "Build with libjpeg-turbo")
set(USE_DIST_KVSTORE ON CACHE BOOL "Build with DIST_KVSTORE support")
set(CUDACXX "/usr/local/cuda-11.8/bin/nvcc" CACHE STRING "Cuda compiler")
set(MXNET_CUDA_ARCH "5.0;6.0;7.0;8.0;8.6" CACHE STRING "Cuda architectures")