From caeb0aee05f989d4714148a65055b1051bbda99b Mon Sep 17 00:00:00 2001 From: Stefano Sinigardi Date: Tue, 26 Feb 2019 21:21:34 +0100 Subject: [PATCH] [CI] add CUDA build tests in matrix --- .travis.yml | 225 +++++++++++++++++++++++++++++++++++++++++++++---- CMakeLists.txt | 3 + 2 files changed, 212 insertions(+), 16 deletions(-) diff --git a/.travis.yml b/.travis.yml index cd381d77..82afaed9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -41,7 +41,7 @@ matrix: - os: linux compiler: clang - name: ubuntu - native clang + name: ubuntu 14.04 - native clang addons: apt: update: true @@ -52,7 +52,7 @@ matrix: - os: linux compiler: clang - name: ubuntu - clang@3.6 + name: ubuntu 14.04 - clang@3.6 addons: apt: update: true @@ -64,7 +64,7 @@ matrix: - os: linux compiler: clang - name: ubuntu - clang@3.8 + name: ubuntu 14.04 - clang@3.8 addons: apt: update: true @@ -78,7 +78,7 @@ matrix: - os: linux compiler: clang - name: ubuntu - clang@3.9 + name: ubuntu 14.04 - clang@3.9 addons: apt: update: true @@ -92,7 +92,7 @@ matrix: - os: linux compiler: clang - name: ubuntu - clang@4.0 + name: ubuntu 14.04 - clang@4.0 addons: apt: update: true @@ -106,7 +106,7 @@ matrix: - os: linux compiler: clang - name: ubuntu - clang@5.0 + name: ubuntu 14.04 - clang@5.0 addons: apt: update: true @@ -120,7 +120,7 @@ matrix: - os: linux compiler: clang - name: ubuntu - clang@6.0 + name: ubuntu 14.04 - clang@6.0 addons: apt: update: true @@ -135,19 +135,18 @@ matrix: - os: linux compiler: gcc - name: ubuntu - native gcc + name: ubuntu 14.04 - native gcc addons: apt: update: true packages: - libopencv-dev - - gfortran env: - MATRIX_EVAL="" - os: linux compiler: gcc - name: ubuntu - gcc@4.9 + name: ubuntu 14.04 - gcc@4.9 addons: apt: update: true @@ -157,11 +156,11 @@ matrix: - libopencv-dev - g++-4.9 env: - - MATRIX_EVAL="CC=gcc-4.9 && CXX=g++-4.9" + - MATRIX_EVAL="CC=gcc-4.9 && CXX=g++-4.9" - os: linux compiler: gcc - name: ubuntu - gcc@5.0 + name: ubuntu 14.04 - gcc@5.0 addons: apt: update: true @@ -171,11 +170,11 @@ matrix: - libopencv-dev - g++-5 env: - - MATRIX_EVAL="CC=gcc-5 && CXX=g++-5" + - MATRIX_EVAL="CC=gcc-5 && CXX=g++-5" - os: linux compiler: gcc - name: ubuntu - gcc@6.0 + name: ubuntu 14.04 - gcc@6.0 addons: apt: update: true @@ -189,7 +188,7 @@ matrix: - os: linux compiler: gcc - name: ubuntu - gcc@7.0 + name: ubuntu 14.04 - gcc@7.0 addons: apt: update: true @@ -203,7 +202,7 @@ matrix: - os: linux compiler: gcc - name: ubuntu - gcc@8.0 + name: ubuntu 14.04 - gcc@8.0 addons: apt: update: true @@ -215,9 +214,203 @@ matrix: env: - MATRIX_EVAL="CC=gcc-8 && CXX=g++-8" + - os: linux + compiler: clang + name: ubuntu 14.04 - native clang - CUDA 10 + addons: + apt: + update: true + packages: + - libopencv-dev + env: + - CUDACXX=/usr/local/cuda-10.0/bin/nvcc + - MATRIX_EVAL="wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/7fa2af80.pub && sudo dpkg -i cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1404/x86_64/nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo dpkg -i nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo apt-get -y update && sudo apt-get install -y --no-install-recommends cuda-compiler-10-0 cuda-cudart-dev-10-0 cuda-cublas-dev-10-0 cuda-curand-dev-10-0 && sudo apt-get install -y --no-install-recommends libcudnn7-dev" + + - os: linux + compiler: clang + name: ubuntu 14.04 - clang@3.6 - CUDA 10 + addons: + apt: + update: true + packages: + - libopencv-dev + - clang-3.6 + env: + - CUDACXX=/usr/local/cuda-10.0/bin/nvcc + - MATRIX_EVAL="CC=clang-3.6 && CXX=clang++-3.6 && wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/7fa2af80.pub && sudo dpkg -i cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1404/x86_64/nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo dpkg -i nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo apt-get -y update && sudo apt-get install -y --no-install-recommends cuda-compiler-10-0 cuda-cudart-dev-10-0 cuda-cublas-dev-10-0 cuda-curand-dev-10-0 && sudo apt-get install -y --no-install-recommends libcudnn7-dev" + + - os: linux + compiler: clang + name: ubuntu 14.04 - clang@3.8 - CUDA 10 + addons: + apt: + update: true + sources: + - llvm-toolchain-precise-3.8 + packages: + - libopencv-dev + - clang-3.8 + env: + - CUDACXX=/usr/local/cuda-10.0/bin/nvcc + - MATRIX_EVAL="CC=clang-3.8 && CXX=clang++-3.8 && wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/7fa2af80.pub && sudo dpkg -i cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1404/x86_64/nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo dpkg -i nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo apt-get -y update && sudo apt-get install -y --no-install-recommends cuda-compiler-10-0 cuda-cudart-dev-10-0 cuda-cublas-dev-10-0 cuda-curand-dev-10-0 && sudo apt-get install -y --no-install-recommends libcudnn7-dev" + + - os: linux + compiler: clang + name: ubuntu 14.04 - clang@3.9 - CUDA 10 + addons: + apt: + update: true + sources: + - llvm-toolchain-trusty-3.9 + packages: + - libopencv-dev + - clang-3.9 + env: + - CUDACXX=/usr/local/cuda-10.0/bin/nvcc + - MATRIX_EVAL="CC=clang-3.9 && CXX=clang++-3.9 && wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/7fa2af80.pub && sudo dpkg -i cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1404/x86_64/nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo dpkg -i nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo apt-get -y update && sudo apt-get install -y --no-install-recommends cuda-compiler-10-0 cuda-cudart-dev-10-0 cuda-cublas-dev-10-0 cuda-curand-dev-10-0 && sudo apt-get install -y --no-install-recommends libcudnn7-dev" + + - os: linux + compiler: clang + name: ubuntu 14.04 - clang@4.0 - CUDA 10 + addons: + apt: + update: true + sources: + - llvm-toolchain-trusty-4.0 + packages: + - libopencv-dev + - clang-4.0 + env: + - CUDACXX=/usr/local/cuda-10.0/bin/nvcc + - MATRIX_EVAL="CC=clang-4.0 && CXX=clang++-4.0 && wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/7fa2af80.pub && sudo dpkg -i cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1404/x86_64/nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo dpkg -i nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo apt-get -y update && sudo apt-get install -y --no-install-recommends cuda-compiler-10-0 cuda-cudart-dev-10-0 cuda-cublas-dev-10-0 cuda-curand-dev-10-0 && sudo apt-get install -y --no-install-recommends libcudnn7-dev" + + - os: linux + compiler: clang + name: ubuntu 14.04 - clang@5.0 - CUDA 10 + addons: + apt: + update: true + sources: + - llvm-toolchain-trusty-5.0 + packages: + - libopencv-dev + - clang-5.0 + env: + - CUDACXX=/usr/local/cuda-10.0/bin/nvcc + - MATRIX_EVAL="CC=clang-5.0 && CXX=clang++-5.0 && wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/7fa2af80.pub && sudo dpkg -i cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1404/x86_64/nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo dpkg -i nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo apt-get -y update && sudo apt-get install -y --no-install-recommends cuda-compiler-10-0 cuda-cudart-dev-10-0 cuda-cublas-dev-10-0 cuda-curand-dev-10-0 && sudo apt-get install -y --no-install-recommends libcudnn7-dev" + + - os: linux + compiler: clang + name: ubuntu 14.04 - clang@6.0 - CUDA 10 + addons: + apt: + update: true + sources: + - llvm-toolchain-trusty-6.0 + - ubuntu-toolchain-r-test + packages: + - libopencv-dev + - clang-6.0 + env: + - CUDACXX=/usr/local/cuda-10.0/bin/nvcc + - MATRIX_EVAL="CC=clang-6.0 && CXX=clang++-6.0 && wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/7fa2af80.pub && sudo dpkg -i cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1404/x86_64/nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo dpkg -i nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo apt-get -y update && sudo apt-get install -y --no-install-recommends cuda-compiler-10-0 cuda-cudart-dev-10-0 cuda-cublas-dev-10-0 cuda-curand-dev-10-0 && sudo apt-get install -y --no-install-recommends libcudnn7-dev" + + - os: linux + compiler: gcc + name: ubuntu 14.04 - native gcc - CUDA 10 + addons: + apt: + update: true + packages: + - libopencv-dev + env: + - CUDACXX=/usr/local/cuda-10.0/bin/nvcc + - MATRIX_EVAL="wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/7fa2af80.pub && sudo dpkg -i cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1404/x86_64/nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo dpkg -i nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo apt-get -y update && sudo apt-get install -y --no-install-recommends cuda-compiler-10-0 cuda-cudart-dev-10-0 cuda-cublas-dev-10-0 cuda-curand-dev-10-0 && sudo apt-get install -y --no-install-recommends libcudnn7-dev" + + - os: linux + compiler: gcc + name: ubuntu 14.04 - gcc@4.9 - CUDA 10 + addons: + apt: + update: true + sources: + - ubuntu-toolchain-r-test + packages: + - libopencv-dev + - g++-4.9 + env: + - CUDACXX=/usr/local/cuda-10.0/bin/nvcc + - MATRIX_EVAL="CC=gcc-4.9 && CXX=g++-4.9 && wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/7fa2af80.pub && sudo dpkg -i cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1404/x86_64/nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo dpkg -i nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo apt-get -y update && sudo apt-get install -y --no-install-recommends cuda-compiler-10-0 cuda-cudart-dev-10-0 cuda-cublas-dev-10-0 cuda-curand-dev-10-0 && sudo apt-get install -y --no-install-recommends libcudnn7-dev" + + - os: linux + compiler: gcc + name: ubuntu 14.04 - gcc@5.0 - CUDA 10 + addons: + apt: + update: true + sources: + - ubuntu-toolchain-r-test + packages: + - libopencv-dev + - g++-5 + env: + - CUDACXX=/usr/local/cuda-10.0/bin/nvcc + - MATRIX_EVAL="CC=gcc-5 && CXX=g++-5 && wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/7fa2af80.pub && sudo dpkg -i cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1404/x86_64/nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo dpkg -i nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo apt-get -y update && sudo apt-get install -y --no-install-recommends cuda-compiler-10-0 cuda-cudart-dev-10-0 cuda-cublas-dev-10-0 cuda-curand-dev-10-0 && sudo apt-get install -y --no-install-recommends libcudnn7-dev" + + - os: linux + compiler: gcc + name: ubuntu 14.04 - gcc@6.0 - CUDA 10 + addons: + apt: + update: true + sources: + - ubuntu-toolchain-r-test + packages: + - g++-6 + - libopencv-dev + env: + - CUDACXX=/usr/local/cuda-10.0/bin/nvcc + - MATRIX_EVAL="CC=gcc-6 && CXX=g++-6 && wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/7fa2af80.pub && sudo dpkg -i cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1404/x86_64/nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo dpkg -i nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo apt-get -y update && sudo apt-get install -y --no-install-recommends cuda-compiler-10-0 cuda-cudart-dev-10-0 cuda-cublas-dev-10-0 cuda-curand-dev-10-0 && sudo apt-get install -y --no-install-recommends libcudnn7-dev" + + - os: linux + compiler: gcc + name: ubuntu 14.04 - gcc@7.0 - CUDA 10 + addons: + apt: + update: true + sources: + - ubuntu-toolchain-r-test + packages: + - libopencv-dev + - g++-7 + env: + - CUDACXX=/usr/local/cuda-10.0/bin/nvcc + - MATRIX_EVAL="CC=gcc-7 && CXX=g++-7 && wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/7fa2af80.pub && sudo dpkg -i cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1404/x86_64/nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo dpkg -i nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo apt-get -y update && sudo apt-get install -y --no-install-recommends cuda-compiler-10-0 cuda-cudart-dev-10-0 cuda-cublas-dev-10-0 cuda-curand-dev-10-0 && sudo apt-get install -y --no-install-recommends libcudnn7-dev" + + - os: linux + compiler: gcc + name: ubuntu 14.04 - gcc@8.0 - CUDA 10 + addons: + apt: + update: true + sources: + - ubuntu-toolchain-r-test + packages: + - libopencv-dev + - g++-8 + env: + - CUDACXX=/usr/local/cuda-10.0/bin/nvcc + - MATRIX_EVAL="CC=gcc-8 && CXX=g++-8 && wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/7fa2af80.pub && sudo dpkg -i cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1404/x86_64/nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo dpkg -i nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo apt-get -y update && sudo apt-get install -y --no-install-recommends cuda-compiler-10-0 cuda-cudart-dev-10-0 cuda-cublas-dev-10-0 cuda-curand-dev-10-0 && sudo apt-get install -y --no-install-recommends libcudnn7-dev" + before_install: - travis_retry eval "${MATRIX_EVAL}" +install: + # CMake upgrade on Linux + - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then wget --no-check-certificate https://github.com/Kitware/CMake/releases/download/v3.13.4/cmake-3.13.4-Linux-x86_64.tar.gz ;fi + - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then tar -xzf cmake-3.13.4-Linux-x86_64.tar.gz ;fi + - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then export PATH=$PWD/cmake-3.13.4-Linux-x86_64/bin:$PATH ;fi + before_script: - mkdir build_debug - cd build_debug diff --git a/CMakeLists.txt b/CMakeLists.txt index 21e1fe0b..de6d95a5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -109,6 +109,9 @@ endif() if(ENABLE_CUDA) add_definitions(-DGPU) + if(NOT WIN32) + include_directories("${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES}") + endif() if(CUDA_COMPUTE_MODEL VERSION_GREATER_EQUAL ${CUDA_COMPUTE_MODEL_75} AND CMAKE_CUDA_COMPILER_VERSION VERSION_LESS_EQUAL 9) message(STATUS "CUDA 10 is required for Compute Model 7.5 - Lowering settings to 7.0") set(CUDA_COMPUTE_MODEL ${CUDA_COMPUTE_MODEL_70})