diff --git a/.gitignore b/.gitignore index 68a7a13b..f5d9a42a 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ *.so *.exe *.dll +*.lib mnist/ data/ caffe/ @@ -34,6 +35,10 @@ Thumbs.db .vs/ .vscode/ +# Managed by CMake +src/version.h + +# Build artifacts lib/ -include/ share/ +include/darknet/ diff --git a/.travis.yml b/.travis.yml index b34ca94b..93a4f6bd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,8 @@ language: cpp +cache: + timeout: 1000 + directories: + - $HOME/vcpkg matrix: include: @@ -14,7 +18,7 @@ matrix: compiler: gcc name: macOS - native gcc (llvm backend) - opencv@2 env: - - OpenCV_DIR="/usr/local/Cellar/opencv@2/2.4.13.7_2/" + - OpenCV_DIR="/usr/local/opt/opencv@2/" - additional_defines="-DOpenCV_DIR=${OpenCV_DIR}" - MATRIX_EVAL="brew install opencv@2" @@ -22,7 +26,7 @@ matrix: compiler: gcc name: macOS - native gcc (llvm backend) - opencv@3 env: - - OpenCV_DIR="/usr/local/Cellar/opencv@3/3.4.5/" + - OpenCV_DIR="/usr/local/opt/opencv@3/" - additional_defines="-DOpenCV_DIR=${OpenCV_DIR}" - MATRIX_EVAL="brew install opencv@3" @@ -44,7 +48,7 @@ matrix: compiler: clang name: macOS - native clang - opencv@2 env: - - OpenCV_DIR="/usr/local/Cellar/opencv@2/2.4.13.7_2/" + - OpenCV_DIR="/usr/local/opt/opencv@2/" - additional_defines="-DOpenCV_DIR=${OpenCV_DIR}" - MATRIX_EVAL="brew install opencv@2" @@ -52,7 +56,7 @@ matrix: compiler: clang name: macOS - native clang - opencv@3 env: - - OpenCV_DIR="/usr/local/Cellar/opencv@3/3.4.5/" + - OpenCV_DIR="/usr/local/opt/opencv@3/" - additional_defines="-DOpenCV_DIR=${OpenCV_DIR}" - MATRIX_EVAL="brew install opencv@3" @@ -63,6 +67,15 @@ matrix: - additional_defines="" - MATRIX_EVAL="brew install opencv" + - os: osx + name: macOS - vcpkg + osx_image: xcode10.1 + env: + - additional_defines="" + - MATRIX_EVAL="brew install gcc && unset CC && unset CXX" + - USE_VCPKG=true + - VCPKG_DEFINES="-DCMAKE_TOOLCHAIN_FILE=$HOME/vcpkg/scripts/buildsystems/vcpkg.cmake" + - os: linux compiler: clang name: ubuntu 14.04 - native clang @@ -83,7 +96,7 @@ matrix: - clang-3.6 env: - additional_defines="" - - MATRIX_EVAL="CC=clang-3.6 && CXX=clang++-3.6" + - MATRIX_EVAL="export CC=clang-3.6 && export CXX=clang++-3.6" - os: linux compiler: clang @@ -97,7 +110,7 @@ matrix: - clang-3.8 env: - additional_defines="" - - MATRIX_EVAL="CC=clang-3.8 && CXX=clang++-3.8" + - MATRIX_EVAL="export CC=clang-3.8 && export CXX=clang++-3.8" - os: linux compiler: clang @@ -111,7 +124,7 @@ matrix: - clang-3.9 env: - additional_defines="" - - MATRIX_EVAL="CC=clang-3.9 && CXX=clang++-3.9" + - MATRIX_EVAL="export CC=clang-3.9 && export CXX=clang++-3.9" - os: linux compiler: clang @@ -125,7 +138,7 @@ matrix: - clang-4.0 env: - additional_defines="" - - MATRIX_EVAL="CC=clang-4.0 && CXX=clang++-4.0" + - MATRIX_EVAL="export CC=clang-4.0 && export CXX=clang++-4.0" - os: linux compiler: clang @@ -139,7 +152,7 @@ matrix: - clang-5.0 env: - additional_defines="" - - MATRIX_EVAL="CC=clang-5.0 && CXX=clang++-5.0" + - MATRIX_EVAL="export CC=clang-5.0 && export CXX=clang++-5.0" - os: linux compiler: clang @@ -154,7 +167,7 @@ matrix: - clang-6.0 env: - additional_defines="" - - MATRIX_EVAL="CC=clang-6.0 && CXX=clang++-6.0" + - MATRIX_EVAL="export CC=clang-6.0 && export CXX=clang++-6.0" - os: linux compiler: gcc @@ -178,7 +191,7 @@ matrix: - g++-4.9 env: - additional_defines="" - - MATRIX_EVAL="CC=gcc-4.9 && CXX=g++-4.9" + - MATRIX_EVAL="export CC=gcc-4.9 && export CXX=g++-4.9" - os: linux compiler: gcc @@ -192,7 +205,7 @@ matrix: - g++-5 env: - additional_defines="" - - MATRIX_EVAL="CC=gcc-5 && CXX=g++-5" + - MATRIX_EVAL="export CC=gcc-5 && export CXX=g++-5" - os: linux compiler: gcc @@ -206,7 +219,7 @@ matrix: - g++-6 env: - additional_defines="" - - MATRIX_EVAL="CC=gcc-6 && CXX=g++-6" + - MATRIX_EVAL="export CC=gcc-6 && export CXX=g++-6" - os: linux compiler: gcc @@ -220,7 +233,7 @@ matrix: - g++-7 env: - additional_defines="" - - MATRIX_EVAL="CC=gcc-7 && CXX=g++-7" + - MATRIX_EVAL="export CC=gcc-7 && export CXX=g++-7" - os: linux compiler: gcc @@ -234,7 +247,23 @@ matrix: - g++-8 env: - additional_defines="" - - MATRIX_EVAL="CC=gcc-8 && CXX=g++-8" + - MATRIX_EVAL="export CC=gcc-8 && export CXX=g++-8" + + - os: linux + compiler: gcc + name: ubuntu 14.04 - gcc@8.0 - vcpkg + addons: + apt: + update: true + sources: + - ubuntu-toolchain-r-test + packages: + - g++-8 + env: + - additional_defines="" + - USE_VCPKG=true + - VCPKG_DEFINES="-DCMAKE_TOOLCHAIN_FILE=$HOME/vcpkg/scripts/buildsystems/vcpkg.cmake" + - MATRIX_EVAL="export CC=gcc-8 && export CXX=g++-8" - os: linux compiler: clang @@ -259,7 +288,7 @@ matrix: - clang-3.6 env: - additional_defines="" - - MATRIX_EVAL="CC=clang-3.6 && CXX=clang++-3.6" + - MATRIX_EVAL="export CC=clang-3.6 && export CXX=clang++-3.6" - os: linux compiler: clang @@ -274,7 +303,7 @@ matrix: - clang-3.8 env: - additional_defines="" - - MATRIX_EVAL="CC=clang-3.8 && CXX=clang++-3.8" + - MATRIX_EVAL="export CC=clang-3.8 && export CXX=clang++-3.8" - os: linux compiler: clang @@ -289,7 +318,7 @@ matrix: - clang-3.9 env: - additional_defines="" - - MATRIX_EVAL="CC=clang-3.9 && CXX=clang++-3.9" + - MATRIX_EVAL="export CC=clang-3.9 && export CXX=clang++-3.9" - os: linux compiler: clang @@ -304,7 +333,7 @@ matrix: - clang-4.0 env: - additional_defines="" - - MATRIX_EVAL="CC=clang-4.0 && CXX=clang++-4.0" + - MATRIX_EVAL="export CC=clang-4.0 && export CXX=clang++-4.0" - os: linux compiler: clang @@ -319,7 +348,7 @@ matrix: - clang-5.0 env: - additional_defines="" - - MATRIX_EVAL="CC=clang-5.0 && CXX=clang++-5.0" + - MATRIX_EVAL="export CC=clang-5.0 && export CXX=clang++-5.0" - os: linux compiler: clang @@ -335,7 +364,7 @@ matrix: - clang-6.0 env: - additional_defines="" - - MATRIX_EVAL="CC=clang-6.0 && CXX=clang++-6.0" + - MATRIX_EVAL="export CC=clang-6.0 && export CXX=clang++-6.0" - os: linux compiler: gcc @@ -362,7 +391,7 @@ matrix: - g++-4.9 env: - additional_defines="" - - MATRIX_EVAL="CC=gcc-4.9 && CXX=g++-4.9" + - MATRIX_EVAL="export CC=gcc-4.9 && export CXX=g++-4.9" - os: linux compiler: gcc @@ -377,7 +406,7 @@ matrix: - g++-5 env: - additional_defines="" - - MATRIX_EVAL="CC=gcc-5 && CXX=g++-5" + - MATRIX_EVAL="export CC=gcc-5 && export CXX=g++-5" - os: linux compiler: gcc @@ -392,7 +421,7 @@ matrix: - libopencv-dev env: - additional_defines="" - - MATRIX_EVAL="CC=gcc-6 && CXX=g++-6" + - MATRIX_EVAL="export CC=gcc-6 && export CXX=g++-6" - os: linux compiler: gcc @@ -407,7 +436,7 @@ matrix: - g++-7 env: - additional_defines="" - - MATRIX_EVAL="CC=gcc-7 && CXX=g++-7" + - MATRIX_EVAL="export CC=gcc-7 && export CXX=g++-7" - os: linux compiler: gcc @@ -422,7 +451,7 @@ matrix: - g++-8 env: - additional_defines="" - - MATRIX_EVAL="CC=gcc-8 && CXX=g++-8" + - MATRIX_EVAL="export CC=gcc-8 && export CXX=g++-8" - os: linux compiler: clang @@ -451,7 +480,7 @@ matrix: - clang-3.6 env: - additional_defines="" - - MATRIX_EVAL="CC=clang-3.6 && CXX=clang++-3.6" + - MATRIX_EVAL="export CC=clang-3.6 && export CXX=clang++-3.6" - os: linux compiler: clang @@ -467,7 +496,7 @@ matrix: - clang-3.8 env: - additional_defines="" - - MATRIX_EVAL="CC=clang-3.8 && CXX=clang++-3.8" + - MATRIX_EVAL="export CC=clang-3.8 && export CXX=clang++-3.8" - os: linux compiler: clang @@ -483,7 +512,7 @@ matrix: - clang-3.9 env: - additional_defines="" - - MATRIX_EVAL="CC=clang-3.9 && CXX=clang++-3.9" + - MATRIX_EVAL="export CC=clang-3.9 && export CXX=clang++-3.9" - os: linux compiler: clang @@ -499,7 +528,7 @@ matrix: - clang-4.0 env: - additional_defines="" - - MATRIX_EVAL="CC=clang-4.0 && CXX=clang++-4.0" + - MATRIX_EVAL="export CC=clang-4.0 && export CXX=clang++-4.0" - os: linux compiler: clang @@ -515,7 +544,7 @@ matrix: - clang-5.0 env: - additional_defines="" - - MATRIX_EVAL="CC=clang-5.0 && CXX=clang++-5.0" + - MATRIX_EVAL="export CC=clang-5.0 && export CXX=clang++-5.0" - os: linux compiler: clang @@ -532,7 +561,7 @@ matrix: - clang-6.0 env: - additional_defines="" - - MATRIX_EVAL="CC=clang-6.0 && CXX=clang++-6.0" + - MATRIX_EVAL="export CC=clang-6.0 && export CXX=clang++-6.0" - os: linux compiler: gcc @@ -562,7 +591,7 @@ matrix: - g++-4.9 env: - additional_defines="" - - MATRIX_EVAL="CC=gcc-4.9 && CXX=g++-4.9" + - MATRIX_EVAL="export CC=gcc-4.9 && export CXX=g++-4.9" - os: linux compiler: gcc @@ -578,7 +607,7 @@ matrix: - g++-5 env: - additional_defines="" - - MATRIX_EVAL="CC=gcc-5 && CXX=g++-5" + - MATRIX_EVAL="export CC=gcc-5 && export CXX=g++-5" - os: linux compiler: gcc @@ -594,7 +623,7 @@ matrix: - libopencv-dev env: - additional_defines="" - - MATRIX_EVAL="CC=gcc-6 && CXX=g++-6" + - MATRIX_EVAL="export CC=gcc-6 && export CXX=g++-6" - os: linux compiler: gcc @@ -610,7 +639,7 @@ matrix: - g++-7 env: - additional_defines="" - - MATRIX_EVAL="CC=gcc-7 && CXX=g++-7" + - MATRIX_EVAL="export CC=gcc-7 && export CXX=g++-7" - os: linux compiler: gcc @@ -626,7 +655,7 @@ matrix: - g++-8 env: - additional_defines="" - - MATRIX_EVAL="CC=gcc-8 && CXX=g++-8" + - MATRIX_EVAL="export CC=gcc-8 && export CXX=g++-8" - os: linux compiler: clang @@ -639,6 +668,8 @@ matrix: env: - additional_defines="" - CUDACXX=/usr/local/cuda-10.0/bin/nvcc + - CUDA_PATH=/usr/local/cuda-10.0 + - CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-10.0 - LD_LIBRARY_PATH="/usr/local/cuda-10.0/lib64:/usr/local/cuda-10.0/lib64/stubs:${LD_LIBRARY_PATH}" - 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-libraries-dev-10-0 cuda-driver-dev-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 && sudo ln -s /usr/local/cuda-10.0/lib64/stubs/libcuda.so /usr/local/cuda-10.0/lib64/stubs/libcuda.so.1" @@ -654,8 +685,10 @@ matrix: env: - additional_defines="" - CUDACXX=/usr/local/cuda-10.0/bin/nvcc + - CUDA_PATH=/usr/local/cuda-10.0 + - CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-10.0 - LD_LIBRARY_PATH="/usr/local/cuda-10.0/lib64:/usr/local/cuda-10.0/lib64/stubs:${LD_LIBRARY_PATH}" - - 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-libraries-dev-10-0 cuda-driver-dev-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 && sudo ln -s /usr/local/cuda-10.0/lib64/stubs/libcuda.so /usr/local/cuda-10.0/lib64/stubs/libcuda.so.1" + - MATRIX_EVAL="export CC=clang-3.6 && export 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-libraries-dev-10-0 cuda-driver-dev-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 && sudo ln -s /usr/local/cuda-10.0/lib64/stubs/libcuda.so /usr/local/cuda-10.0/lib64/stubs/libcuda.so.1" - os: linux compiler: clang @@ -671,8 +704,10 @@ matrix: env: - additional_defines="" - CUDACXX=/usr/local/cuda-10.0/bin/nvcc + - CUDA_PATH=/usr/local/cuda-10.0 + - CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-10.0 - LD_LIBRARY_PATH="/usr/local/cuda-10.0/lib64:/usr/local/cuda-10.0/lib64/stubs:${LD_LIBRARY_PATH}" - - 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-libraries-dev-10-0 cuda-driver-dev-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 && sudo ln -s /usr/local/cuda-10.0/lib64/stubs/libcuda.so /usr/local/cuda-10.0/lib64/stubs/libcuda.so.1" + - MATRIX_EVAL="export CC=clang-3.8 && export 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-libraries-dev-10-0 cuda-driver-dev-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 && sudo ln -s /usr/local/cuda-10.0/lib64/stubs/libcuda.so /usr/local/cuda-10.0/lib64/stubs/libcuda.so.1" - os: linux compiler: clang @@ -688,8 +723,10 @@ matrix: env: - additional_defines="" - CUDACXX=/usr/local/cuda-10.0/bin/nvcc + - CUDA_PATH=/usr/local/cuda-10.0 + - CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-10.0 - LD_LIBRARY_PATH="/usr/local/cuda-10.0/lib64:/usr/local/cuda-10.0/lib64/stubs:${LD_LIBRARY_PATH}" - - 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-libraries-dev-10-0 cuda-driver-dev-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 && sudo ln -s /usr/local/cuda-10.0/lib64/stubs/libcuda.so /usr/local/cuda-10.0/lib64/stubs/libcuda.so.1" + - MATRIX_EVAL="export CC=clang-3.9 && export 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-libraries-dev-10-0 cuda-driver-dev-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 && sudo ln -s /usr/local/cuda-10.0/lib64/stubs/libcuda.so /usr/local/cuda-10.0/lib64/stubs/libcuda.so.1" - os: linux compiler: clang @@ -705,8 +742,10 @@ matrix: env: - additional_defines="" - CUDACXX=/usr/local/cuda-10.0/bin/nvcc + - CUDA_PATH=/usr/local/cuda-10.0 + - CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-10.0 - LD_LIBRARY_PATH="/usr/local/cuda-10.0/lib64:/usr/local/cuda-10.0/lib64/stubs:${LD_LIBRARY_PATH}" - - 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-libraries-dev-10-0 cuda-driver-dev-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 && sudo ln -s /usr/local/cuda-10.0/lib64/stubs/libcuda.so /usr/local/cuda-10.0/lib64/stubs/libcuda.so.1" + - MATRIX_EVAL="export CC=clang-4.0 && export 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-libraries-dev-10-0 cuda-driver-dev-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 && sudo ln -s /usr/local/cuda-10.0/lib64/stubs/libcuda.so /usr/local/cuda-10.0/lib64/stubs/libcuda.so.1" - os: linux compiler: clang @@ -722,8 +761,10 @@ matrix: env: - additional_defines="" - CUDACXX=/usr/local/cuda-10.0/bin/nvcc + - CUDA_PATH=/usr/local/cuda-10.0 + - CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-10.0 - LD_LIBRARY_PATH="/usr/local/cuda-10.0/lib64:/usr/local/cuda-10.0/lib64/stubs:${LD_LIBRARY_PATH}" - - 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-libraries-dev-10-0 cuda-driver-dev-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 && sudo ln -s /usr/local/cuda-10.0/lib64/stubs/libcuda.so /usr/local/cuda-10.0/lib64/stubs/libcuda.so.1" + - MATRIX_EVAL="export CC=clang-5.0 && export 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-libraries-dev-10-0 cuda-driver-dev-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 && sudo ln -s /usr/local/cuda-10.0/lib64/stubs/libcuda.so /usr/local/cuda-10.0/lib64/stubs/libcuda.so.1" - os: linux compiler: clang @@ -740,8 +781,10 @@ matrix: env: - additional_defines="" - CUDACXX=/usr/local/cuda-10.0/bin/nvcc + - CUDA_PATH=/usr/local/cuda-10.0 + - CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-10.0 - LD_LIBRARY_PATH="/usr/local/cuda-10.0/lib64:/usr/local/cuda-10.0/lib64/stubs:${LD_LIBRARY_PATH}" - - 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-libraries-dev-10-0 cuda-driver-dev-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 && sudo ln -s /usr/local/cuda-10.0/lib64/stubs/libcuda.so /usr/local/cuda-10.0/lib64/stubs/libcuda.so.1" + - MATRIX_EVAL="export CC=clang-6.0 && export 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-libraries-dev-10-0 cuda-driver-dev-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 && sudo ln -s /usr/local/cuda-10.0/lib64/stubs/libcuda.so /usr/local/cuda-10.0/lib64/stubs/libcuda.so.1" - os: linux compiler: gcc @@ -754,6 +797,8 @@ matrix: env: - additional_defines="" - CUDACXX=/usr/local/cuda-10.0/bin/nvcc + - CUDA_PATH=/usr/local/cuda-10.0 + - CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-10.0 - LD_LIBRARY_PATH="/usr/local/cuda-10.0/lib64:/usr/local/cuda-10.0/lib64/stubs:${LD_LIBRARY_PATH}" - 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-libraries-dev-10-0 cuda-driver-dev-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 && sudo ln -s /usr/local/cuda-10.0/lib64/stubs/libcuda.so /usr/local/cuda-10.0/lib64/stubs/libcuda.so.1" @@ -771,8 +816,10 @@ matrix: env: - additional_defines="" - CUDACXX=/usr/local/cuda-10.0/bin/nvcc + - CUDA_PATH=/usr/local/cuda-10.0 + - CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-10.0 - LD_LIBRARY_PATH="/usr/local/cuda-10.0/lib64:/usr/local/cuda-10.0/lib64/stubs:${LD_LIBRARY_PATH}" - - 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-libraries-dev-10-0 cuda-driver-dev-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 && sudo ln -s /usr/local/cuda-10.0/lib64/stubs/libcuda.so /usr/local/cuda-10.0/lib64/stubs/libcuda.so.1" + - MATRIX_EVAL="export CC=gcc-4.9 && export 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-libraries-dev-10-0 cuda-driver-dev-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 && sudo ln -s /usr/local/cuda-10.0/lib64/stubs/libcuda.so /usr/local/cuda-10.0/lib64/stubs/libcuda.so.1" - os: linux compiler: gcc @@ -788,8 +835,10 @@ matrix: env: - additional_defines="" - CUDACXX=/usr/local/cuda-10.0/bin/nvcc + - CUDA_PATH=/usr/local/cuda-10.0 + - CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-10.0 - LD_LIBRARY_PATH="/usr/local/cuda-10.0/lib64:/usr/local/cuda-10.0/lib64/stubs:${LD_LIBRARY_PATH}" - - 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-libraries-dev-10-0 cuda-driver-dev-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 && sudo ln -s /usr/local/cuda-10.0/lib64/stubs/libcuda.so /usr/local/cuda-10.0/lib64/stubs/libcuda.so.1" + - MATRIX_EVAL="export CC=gcc-5 && export 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-libraries-dev-10-0 cuda-driver-dev-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 && sudo ln -s /usr/local/cuda-10.0/lib64/stubs/libcuda.so /usr/local/cuda-10.0/lib64/stubs/libcuda.so.1" - os: linux compiler: gcc @@ -805,8 +854,10 @@ matrix: env: - additional_defines="" - CUDACXX=/usr/local/cuda-10.0/bin/nvcc + - CUDA_PATH=/usr/local/cuda-10.0 + - CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-10.0 - LD_LIBRARY_PATH="/usr/local/cuda-10.0/lib64:/usr/local/cuda-10.0/lib64/stubs:${LD_LIBRARY_PATH}" - - 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-libraries-dev-10-0 cuda-driver-dev-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 && sudo ln -s /usr/local/cuda-10.0/lib64/stubs/libcuda.so /usr/local/cuda-10.0/lib64/stubs/libcuda.so.1" + - MATRIX_EVAL="export CC=gcc-6 && export 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-libraries-dev-10-0 cuda-driver-dev-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 && sudo ln -s /usr/local/cuda-10.0/lib64/stubs/libcuda.so /usr/local/cuda-10.0/lib64/stubs/libcuda.so.1" - os: linux compiler: gcc @@ -822,8 +873,10 @@ matrix: env: - additional_defines="" - CUDACXX=/usr/local/cuda-10.0/bin/nvcc + - CUDA_PATH=/usr/local/cuda-10.0 + - CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-10.0 - LD_LIBRARY_PATH="/usr/local/cuda-10.0/lib64:/usr/local/cuda-10.0/lib64/stubs:${LD_LIBRARY_PATH}" - - 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-libraries-dev-10-0 cuda-driver-dev-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 && sudo ln -s /usr/local/cuda-10.0/lib64/stubs/libcuda.so /usr/local/cuda-10.0/lib64/stubs/libcuda.so.1" + - MATRIX_EVAL="export CC=gcc-7 && export 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-libraries-dev-10-0 cuda-driver-dev-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 && sudo ln -s /usr/local/cuda-10.0/lib64/stubs/libcuda.so /usr/local/cuda-10.0/lib64/stubs/libcuda.so.1" - os: linux compiler: gcc @@ -839,27 +892,64 @@ matrix: env: - additional_defines="" - CUDACXX=/usr/local/cuda-10.0/bin/nvcc + - CUDA_PATH=/usr/local/cuda-10.0 + - CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-10.0 - LD_LIBRARY_PATH="/usr/local/cuda-10.0/lib64:/usr/local/cuda-10.0/lib64/stubs:${LD_LIBRARY_PATH}" - - 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-libraries-dev-10-0 cuda-driver-dev-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 && sudo ln -s /usr/local/cuda-10.0/lib64/stubs/libcuda.so /usr/local/cuda-10.0/lib64/stubs/libcuda.so.1" + - MATRIX_EVAL="export CC=gcc-8 && export 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-libraries-dev-10-0 cuda-driver-dev-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 && sudo ln -s /usr/local/cuda-10.0/lib64/stubs/libcuda.so /usr/local/cuda-10.0/lib64/stubs/libcuda.so.1" + + - os: linux + compiler: gcc + name: ubuntu 14.04 - gcc@8.0 - CUDA 10 - vcpkg + addons: + apt: + update: true + sources: + - ubuntu-toolchain-r-test + packages: + - g++-8 + env: + - additional_defines="" + - USE_VCPKG=true + - VCPKG_DEFINES="-DCMAKE_TOOLCHAIN_FILE=$HOME/vcpkg/scripts/buildsystems/vcpkg.cmake" + - CUDACXX=/usr/local/cuda-10.0/bin/nvcc + - CUDA_PATH=/usr/local/cuda-10.0 + - CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-10.0 + - LD_LIBRARY_PATH="/usr/local/cuda-10.0/lib64:/usr/local/cuda-10.0/lib64/stubs:${LD_LIBRARY_PATH}" + - MATRIX_EVAL="export CC=gcc-8 && export 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-libraries-dev-10-0 cuda-driver-dev-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 && sudo ln -s /usr/local/cuda-10.0/lib64/stubs/libcuda.so /usr/local/cuda-10.0/lib64/stubs/libcuda.so.1" + +# allow_failures: +# - name: macOS - vcpkg +# - name: ubuntu 14.04 - gcc@8.0 - vcpkg +# - name: ubuntu 14.04 - gcc@8.0 - CUDA 10 - vcpkg 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 + - 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 + - pushd $HOME + - if [ -d "$HOME/vcpkg/.git" ] ; then echo vcpkg cached ; else rm -rf vcpkg ; git clone https://github.com/Microsoft/vcpkg ; fi + - cd vcpkg + - git pull + - if [ "${USE_VCPKG}" = true ] ; then ./bootstrap-vcpkg.sh ; fi + - if [ "${USE_VCPKG}" = true ] ; then travis_wait ./vcpkg install stb pthreads ; fi + #- if [ "${USE_VCPKG}" = true ] && [[ ! -z "${CUDACXX}" ]] ; then travis_wait 45 ./vcpkg install opencv[ffmpeg,cuda] --recurse; fi + #- if [ "${USE_VCPKG}" = true ] && [[ -z "${CUDACXX}" ]] ; then travis_wait 45 ./vcpkg install opencv[ffmpeg] --recurse; fi + - if [ "${USE_VCPKG}" = true ] ; then travis_wait 45 ./vcpkg install opencv[ffmpeg] ; fi + - popd before_script: - echo ${additional_defines} - mkdir build_debug - cd build_debug - - cmake .. -DCMAKE_BUILD_TYPE="Debug" ${additional_defines} + - cmake .. -DCMAKE_BUILD_TYPE="Debug" ${VCPKG_DEFINES} ${additional_defines} - cd .. - mkdir build_release - cd build_release - - cmake .. -DCMAKE_BUILD_TYPE="Release" ${additional_defines} + - cmake .. -DCMAKE_BUILD_TYPE="Release" ${VCPKG_DEFINES} ${additional_defines} - cd .. script: diff --git a/CMakeLists.txt b/CMakeLists.txt index 585eb0ed..e41a5f77 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,7 +6,7 @@ set(Darknet_PATCH_VERSION 5) set(Darknet_VERSION ${Darknet_MAJOR_VERSION}.${Darknet_MINOR_VERSION}.${Darknet_PATCH_VERSION}) set(CMAKE_VERBOSE_MAKEFILE "FALSE" CACHE BOOL "Create verbose makefile") -set(BUILD_SHARED_LIBS "TRUE" CACHE BOOL "Create darklib as a shared library") +set(BUILD_SHARED_LIBS "TRUE" CACHE BOOL "Create dark as a shared library") if(DEFINED ENV{VCPKG_ROOT} AND NOT DEFINED CMAKE_TOOLCHAIN_FILE) set(CMAKE_TOOLCHAIN_FILE "$ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" CACHE STRING "") @@ -30,9 +30,149 @@ set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake/Modules/" ${CMAKE_MODULE_ set(CMAKE_INSTALL_PREFIX "${CMAKE_CURRENT_LIST_DIR}" CACHE PATH "Install prefix" FORCE) set(INSTALL_BIN_DIR "${CMAKE_CURRENT_LIST_DIR}" CACHE PATH "Path where exe and dll will be installed") -set(INSTALL_LIB_DIR "lib" CACHE PATH "Path where lib will be installed") -set(INSTALL_INCLUDE_DIR "include" CACHE PATH "Path where headers will be installed") +set(INSTALL_LIB_DIR "${CMAKE_CURRENT_LIST_DIR}" CACHE PATH "Path where lib will be installed") +set(INSTALL_INCLUDE_DIR "include/darknet" CACHE PATH "Path where headers will be installed") set(INSTALL_CMAKE_DIR "share/darknet" CACHE PATH "Path where cmake configs will be installed") + +set(ENABLE_CUDA "FALSE" CACHE BOOL "Enable CUDA support") +set(ENABLE_CUDNN "FALSE" CACHE BOOL "Enable CUDNN") +set(ENABLE_CUDNN_HALF "FALSE" CACHE BOOL "Enable CUDNN Half precision") + +if(${CMAKE_VERSION} VERSION_LESS "3.9.0") + set(ENABLE_CUDA "FALSE" CACHE BOOL "Enable CUDA support" FORCE) + message(WARNING "To build with CUDA support you need CMake 3.9.0+") +else() + include(CheckLanguage) + check_language(CUDA) + if(CMAKE_CUDA_COMPILER) + set(CUDA_ARCHITECTURES "Auto" CACHE STRING "\"Auto\" detects local machine GPU compute arch at runtime, \"Common\" and \"All\" cover common and entire subsets of architectures, \"Names\" is a list of architectures to enable by name, \"Numbers\" is a list of compute capabilities (version number) to enable") + set_property(CACHE CUDA_ARCHITECTURES PROPERTY STRINGS "Auto" "Common" "All" "Kepler Maxwell Kepler+Tegra Maxwell+Tegra Pascal" "3.0 7.5") + enable_language(CUDA) + find_package(CUDA REQUIRED) + if(CUDA_VERSION VERSION_LESS "9.0") + message(STATUS "Unsupported CUDA version, please upgrade to CUDA 9+. Disabling CUDA support") + else() + set(ENABLE_CUDA "TRUE" CACHE BOOL "Enable CUDA support" FORCE) + cuda_select_nvcc_arch_flags(CUDA_ARCH_FLAGS ${CUDA_ARCHITECTURES}) + message(STATUS "Building with CUDA flags: " "${CUDA_ARCH_FLAGS}") + if ("arch=compute_75,code=sm_75" IN_LIST CUDA_ARCH_FLAGS) + set(ENABLE_CUDNN_HALF "TRUE" CACHE BOOL "Enable CUDNN Half precision" FORCE) + message(STATUS "Your setup supports half precision!") + endif() + endif() + endif() +endif() + +if(USE_INTEGRATED_LIBS) + set(PThreads_windows_DIR ${CMAKE_CURRENT_LIST_DIR}/3rdparty/pthreads CACHE PATH "Path where pthreads for windows can be located") +endif() +set(Stb_DIR ${CMAKE_CURRENT_LIST_DIR}/3rdparty/stb CACHE PATH "Path where Stb image library can be located") + +set(CMAKE_DEBUG_POSTFIX d) +set(CMAKE_THREAD_PREFER_PTHREAD ON) +find_package(Threads REQUIRED) +if(MSVC) + find_package(PThreads_windows REQUIRED) +endif() +find_package(OpenCV) +find_package(Stb REQUIRED) +if(${CMAKE_VERSION} VERSION_LESS "3.9.0") + message(WARNING "To build with OpenMP support you need CMake 3.9.0+") +else() + find_package(OpenMP) +endif() + +set(ADDITIONAL_CXX_FLAGS "-Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -Wno-deprecated-declarations -Wno-write-strings") +set(ADDITIONAL_C_FLAGS "-Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -Wno-deprecated-declarations -Wno-write-strings") + +if(MSVC) + set(ADDITIONAL_CXX_FLAGS "/wd4013 /wd4018 /wd4028 /wd4047 /wd4068 /wd4090 /wd4101 /wd4113 /wd4133 /wd4190 /wd4244 /wd4267 /wd4305 /wd4477 /wd4996 /wd4819 /fp:fast") + set(ADDITIONAL_C_FLAGS "/wd4013 /wd4018 /wd4028 /wd4047 /wd4068 /wd4090 /wd4101 /wd4113 /wd4133 /wd4190 /wd4244 /wd4267 /wd4305 /wd4477 /wd4996 /wd4819 /fp:fast") + set(CMAKE_CXX_FLAGS "${ADDITIONAL_CXX_FLAGS} ${CMAKE_CXX_FLAGS}") + set(CMAKE_C_FLAGS "${ADDITIONAL_C_FLAGS} ${CMAKE_C_FLAGS}") + string(REGEX REPLACE "/O2" "/Ox" CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE}) + string(REGEX REPLACE "/O2" "/Ox" CMAKE_C_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE}) +endif() + +if(CMAKE_COMPILER_IS_GNUCC OR "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") + if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") + if (UNIX AND NOT APPLE) + set(CMAKE_CXX_FLAGS "-pthread ${CMAKE_CXX_FLAGS}") #force pthread to avoid bugs in some cmake setups + set(CMAKE_C_FLAGS "-pthread ${CMAKE_C_FLAGS}") + endif() + endif() + set(CMAKE_CXX_FLAGS "${ADDITIONAL_CXX_FLAGS} ${CMAKE_CXX_FLAGS}") + set(CMAKE_C_FLAGS "${ADDITIONAL_C_FLAGS} ${CMAKE_C_FLAGS}") + string(REGEX REPLACE "-O0" "-Og" CMAKE_CXX_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG}) + string(REGEX REPLACE "-O3" "-Ofast" CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE}) + string(REGEX REPLACE "-O0" "-Og" CMAKE_C_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG}) + string(REGEX REPLACE "-O3" "-Ofast" CMAKE_C_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE}) + set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -ffp-contract=fast -mavx -mavx2 -msse3 -msse4.1 -msse4.2 -msse4a") + set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -ffp-contract=fast -mavx -mavx2 -msse3 -msse4.1 -msse4.2 -msse4a") +endif() + +set(SKIP_USELIB_TRACK "FALSE" CACHE BOOL "Skip building uselib_track" FORCE) +if(OpenCV_FOUND) + if(ENABLE_CUDA AND NOT OpenCV_CUDA_VERSION) + set(SKIP_USELIB_TRACK "TRUE" CACHE BOOL "Skip building uselib_track" FORCE) + message(STATUS " -> darknet is fine for now, but uselib_track has been disabled!") + message(STATUS " -> Please rebuild OpenCV from sources with CUDA support to enable it") + endif() +endif() + +if(ENABLE_CUDA) + find_package(CUDNN) + if(CUDNN_FOUND) + set(ENABLE_CUDNN "TRUE" CACHE BOOL "Enable CUDNN" FORCE) + endif() +endif() + +if(ENABLE_CUDA) + if (MSVC) + set(ADDITIONAL_CXX_FLAGS "${ADDITIONAL_CXX_FLAGS} /DGPU") + if(CUDNN_FOUND) + set(ADDITIONAL_CXX_FLAGS "${ADDITIONAL_CXX_FLAGS} /DCUDNN") + endif() + if(OpenCV_FOUND) + set(ADDITIONAL_CXX_FLAGS "${ADDITIONAL_CXX_FLAGS} /DOPENCV") + endif() + string(REPLACE " " "," ADDITIONAL_CXX_FLAGS_COMMA_SEPARATED "${ADDITIONAL_CXX_FLAGS}") + set(CUDA_HOST_COMPILER_FLAGS "-Wno-deprecated-declarations -Xcompiler=\"${ADDITIONAL_CXX_FLAGS_COMMA_SEPARATED}\"") + else() + set(ADDITIONAL_CXX_FLAGS "${ADDITIONAL_CXX_FLAGS} -DGPU") + if(CUDNN_FOUND) + set(ADDITIONAL_CXX_FLAGS "${ADDITIONAL_CXX_FLAGS} -DCUDNN") + endif() + if(OpenCV_FOUND) + set(ADDITIONAL_CXX_FLAGS "${ADDITIONAL_CXX_FLAGS} -DOPENCV") + endif() + set(CUDA_HOST_COMPILER_FLAGS "--compiler-options \" ${ADDITIONAL_CXX_FLAGS} -fPIC -fopenmp -Ofast \"") + endif() + + string (REPLACE ";" " " CUDA_ARCH_FLAGS_SPACE_SEPARATED "${CUDA_ARCH_FLAGS}") + set(CMAKE_CUDA_FLAGS "${CUDA_ARCH_FLAGS_SPACE_SEPARATED} ${CUDA_HOST_COMPILER_FLAGS} ${CMAKE_CUDA_FLAGS}") + message(STATUS "CMAKE_CUDA_FLAGS: ${CMAKE_CUDA_FLAGS}") +endif() + +set(ENABLE_ZED_CAMERA "TRUE" CACHE BOOL "Enable ZED Camera support") +if(ENABLE_CUDA) + if(ENABLE_ZED_CAMERA) + find_package(ZED 2 QUIET) + if(ZED_FOUND) + include_directories(${ZED_INCLUDE_DIRS}) + link_directories(${ZED_LIBRARY_DIR}) + message(STATUS "ZED SDK enabled") + else() + message(STATUS "ZED SDK not found") + set(ENABLE_ZED_CAMERA "FALSE" CACHE BOOL "Enable ZED Camera support" FORCE) + endif() + endif() +else() + message(STATUS "ZED SDK not enabled, since it requires CUDA") + set(ENABLE_ZED_CAMERA "FALSE" CACHE BOOL "Enable ZED Camera support" FORCE) +endif() + +set(DARKNET_INSTALL_INCLUDE_DIR ${INSTALL_INCLUDE_DIR}) # Make relative paths absolute (needed later on) foreach(p LIB BIN INCLUDE CMAKE) set(var INSTALL_${p}_DIR) @@ -46,188 +186,20 @@ configure_file( "${CMAKE_CURRENT_LIST_DIR}/src/version.h" ) -set(ENABLE_CUDA "TRUE" CACHE BOOL "Enable CUDA build") -if(${CMAKE_VERSION} VERSION_LESS "3.8.0") - set(ENABLE_CUDA "FALSE" CACHE BOOL "Enable CUDA build" FORCE) - message(WARNING "To build with CUDA support you need CMake 3.8.0+") -else() - include(CheckLanguage) - check_language(CUDA) - if(CMAKE_CUDA_COMPILER) - enable_language(CUDA) - else() - set(ENABLE_CUDA "FALSE" CACHE BOOL "Enable CUDA build" FORCE) - endif() -endif() - -set(CUDA_COMPUTE_MODEL_75 "75") #Compute capability for Tesla T4, RTX 2080 -set(CUDA_COMPUTE_MODEL_72 "72") #Compute capability for Jetson Xavier -set(CUDA_COMPUTE_MODEL_70 "70") #Compute capability for Tesla V100 -set(CUDA_COMPUTE_MODEL_62 "62") #Compute capability for Jetson TX2 -set(CUDA_COMPUTE_MODEL_61 "61") #Compute capability for Tesla P40 -set(CUDA_COMPUTE_MODEL_60 "60") #Compute capability for Tesla P100 -set(CUDA_COMPUTE_MODEL_53 "53") #Compute capability for Jetson TX1 -set(CUDA_COMPUTE_MODEL_52 "52") #Compute capability for Tesla M40/M60 -set(CUDA_COMPUTE_MODEL_37 "37") #Compute capability for Tesla K80 -set(CUDA_COMPUTE_MODEL_35 "35") #Compute capability for Tesla K20/K40 -set(CUDA_COMPUTE_MODEL_30 "30") #Compute capability for Tesla K10, Quadro K4000 - -set(default_cuda_compute_model ${CUDA_COMPUTE_MODEL_30}) -if(ENABLE_CUDA AND NOT CUDA_COMPUTE_MODEL) - message(STATUS "Setting the compute model to ${default_cuda_compute_model} as none was specified.") - set(CUDA_COMPUTE_MODEL "${default_cuda_compute_model}" CACHE - STRING "Choose the best compute model supported by your GPU" FORCE) - set_property(CACHE CUDA_COMPUTE_MODEL PROPERTY STRINGS ${CUDA_COMPUTE_MODEL_75} ${CUDA_COMPUTE_MODEL_72} ${CUDA_COMPUTE_MODEL_70} ${CUDA_COMPUTE_MODEL_62} ${CUDA_COMPUTE_MODEL_61} ${CUDA_COMPUTE_MODEL_60} ${CUDA_COMPUTE_MODEL_53} ${CUDA_COMPUTE_MODEL_52} ${CUDA_COMPUTE_MODEL_37} ${CUDA_COMPUTE_MODEL_35} ${CUDA_COMPUTE_MODEL_30}) -endif() - -if(NOT ENABLE_CUDA) - set(CUDA_COMPUTE_MODEL "0" CACHE STRING "CUDA Compute Model set to 0 because CUDA is missing" FORCE) -endif() - -if(USE_INTEGRATED_LIBS) - set(PThreads_windows_DIR ${CMAKE_CURRENT_LIST_DIR}/3rdparty/pthreads CACHE PATH "Path where pthreads for windows can be located") - add_definitions(-D_TIMESPEC_DEFINED) -endif() -set(Stb_DIR ${CMAKE_CURRENT_LIST_DIR}/3rdparty/stb CACHE PATH "Path where Stb image library can be located") - -set(CMAKE_DEBUG_POSTFIX d) -add_definitions(-DUSE_CMAKE_LIBS) - -if(MSVC) - set(CMAKE_CXX_FLAGS "/wd4013 /wd4018 /wd4028 /wd4047 /wd4068 /wd4090 /wd4101 /wd4113 /wd4133 /wd4190 /wd4244 /wd4267 /wd4305 /wd4477 /wd4996 /wd4819 /fp:fast ${CMAKE_CXX_FLAGS}") - string(REGEX REPLACE "/O2" "/Ox" CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE}) - add_definitions(-D_CRT_RAND_S) - add_definitions(-DNOMINMAX) - add_definitions(-D_USE_MATH_DEFINES) -endif() - -if(CMAKE_COMPILER_IS_GNUCC) - set(CMAKE_CXX_FLAGS "-Wno-unused-result -Wno-write-strings ${CMAKE_CXX_FLAGS}") - string(REGEX REPLACE "-O0" "-Og" CMAKE_CXX_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG}) - string(REGEX REPLACE "-O3" "-Ofast" CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE}) - set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -ffp-contract=fast -mavx -mavx2 -msse3 -msse4.1 -msse4.2 -msse4a") -endif() - -if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") - if (UNIX AND NOT APPLE) - set(CMAKE_CXX_FLAGS "-pthread ${CMAKE_CXX_FLAGS}") #force pthread to avoid bugs in some cmake setups - endif() - set(CMAKE_CXX_FLAGS "-Wno-deprecated -Wno-writable-strings ${CMAKE_CXX_FLAGS}") - string(REGEX REPLACE "-O0" "-Og" CMAKE_CXX_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG}) - string(REGEX REPLACE "-O3" "-Ofast" CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE}) -endif() - -set(ENABLE_OPENCV "TRUE" CACHE BOOL "Enable OpenCV integration") -if(ENABLE_OPENCV) - find_package(OpenCV) -endif() -find_package(Stb REQUIRED) - -set(SKIP_USELIB_TRACK "FALSE" CACHE BOOL "Skip building uselib_track" FORCE) -if(OpenCV_FOUND) - if(ENABLE_CUDA AND NOT OpenCV_CUDA_VERSION) - set(SKIP_USELIB_TRACK "TRUE" CACHE BOOL "Skip building uselib_track" FORCE) - message(STATUS " -> darknet is fine for now, but uselib_track has been disabled!") - message(STATUS " -> Please rebuild OpenCV from sources with CUDA support to enable it") - endif() - add_definitions(-DOPENCV) -endif() - -if(ENABLE_CUDA) - add_definitions(-DGPU) - if(NOT WIN32) - include_directories("${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES}") - link_directories("${CMAKE_CUDA_IMPLICIT_LINK_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}) - endif() - find_package(CUDNN) - if(CUDNN_FOUND) - add_definitions(-DCUDNN) - if(CUDA_COMPUTE_MODEL VERSION_GREATER_EQUAL ${CUDA_COMPUTE_MODEL_70}) - add_definitions(-DCUDNN_HALF) - message(STATUS "Enabled CUDNN_HALF") - endif() - endif() - if (MSVC) - if(CUDNN_FOUND) - if(OpenCV_FOUND) - set(CMAKE_CUDA_FLAGS "-gencode arch=compute_${CUDA_COMPUTE_MODEL},code=[sm_${CUDA_COMPUTE_MODEL},compute_${CUDA_COMPUTE_MODEL}] -Wno-deprecated-declarations -Xcompiler=\"/wd4028,/wd4190,/wd4244,/wd4267,/wd4305,/wd4477,/wd4996,/wd4819,/DGPU,/DCUDNN,/DOPENCV\" ${CMAKE_CUDA_FLAGS}") - else() - set(CMAKE_CUDA_FLAGS "-gencode arch=compute_${CUDA_COMPUTE_MODEL},code=[sm_${CUDA_COMPUTE_MODEL},compute_${CUDA_COMPUTE_MODEL}] -Wno-deprecated-declarations -Xcompiler=\"/wd4028,/wd4190,/wd4244,/wd4267,/wd4305,/wd4477,/wd4996,/wd4819,/DGPU,/DCUDNN\" ${CMAKE_CUDA_FLAGS}") - endif() - else() - if(OpenCV_FOUND) - set(CMAKE_CUDA_FLAGS "-gencode arch=compute_${CUDA_COMPUTE_MODEL},code=[sm_${CUDA_COMPUTE_MODEL},compute_${CUDA_COMPUTE_MODEL}] -Wno-deprecated-declarations -Xcompiler=\"/wd4028,/wd4190,/wd4244,/wd4267,/wd4305,/wd4477,/wd4996,/wd4819,/DGPU,/DOPENCV\" ${CMAKE_CUDA_FLAGS}") - else() - set(CMAKE_CUDA_FLAGS "-gencode arch=compute_${CUDA_COMPUTE_MODEL},code=[sm_${CUDA_COMPUTE_MODEL},compute_${CUDA_COMPUTE_MODEL}] -Wno-deprecated-declarations -Xcompiler=\"/wd4028,/wd4190,/wd4244,/wd4267,/wd4305,/wd4477,/wd4996,/wd4819,/DGPU\" ${CMAKE_CUDA_FLAGS}") - endif() - endif() - else() - if(CUDNN_FOUND) - if(OpenCV_FOUND) - set(CMAKE_CUDA_FLAGS "-gencode arch=compute_${CUDA_COMPUTE_MODEL},code=[sm_${CUDA_COMPUTE_MODEL},compute_${CUDA_COMPUTE_MODEL}] --compiler-options \"-Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -Wno-deprecated-declarations -fPIC -fopenmp -Ofast -DOPENCV -DGPU -DCUDNN \" ${CMAKE_CUDA_FLAGS}") - else() - set(CMAKE_CUDA_FLAGS "-gencode arch=compute_${CUDA_COMPUTE_MODEL},code=[sm_${CUDA_COMPUTE_MODEL},compute_${CUDA_COMPUTE_MODEL}] --compiler-options \"-Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -Wno-deprecated-declarations -fPIC -fopenmp -Ofast -DGPU -DCUDNN \" ${CMAKE_CUDA_FLAGS}") - endif() - else() - if(OpenCV_FOUND) - set(CMAKE_CUDA_FLAGS "-gencode arch=compute_${CUDA_COMPUTE_MODEL},code=[sm_${CUDA_COMPUTE_MODEL},compute_${CUDA_COMPUTE_MODEL}] --compiler-options \"-Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -Wno-deprecated-declarations -fPIC -fopenmp -Ofast -DOPENCV -DGPU \" ${CMAKE_CUDA_FLAGS}") - else() - set(CMAKE_CUDA_FLAGS "-gencode arch=compute_${CUDA_COMPUTE_MODEL},code=[sm_${CUDA_COMPUTE_MODEL},compute_${CUDA_COMPUTE_MODEL}] --compiler-options \"-Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -Wno-deprecated-declarations -fPIC -fopenmp -Ofast -DGPU \" ${CMAKE_CUDA_FLAGS}") - endif() - endif() - endif() -endif() - -set(ENABLE_ZED_CAMERA "TRUE" CACHE BOOL "Enable ZED Camera support") -if(ENABLE_CUDA) - if(ENABLE_ZED_CAMERA) - find_package(ZED 2 QUIET) - if(ZED_FOUND) - include_directories(${ZED_INCLUDE_DIRS}) - link_directories(${ZED_LIBRARY_DIR}) - add_definitions(-DZED_STEREO) - message(STATUS "ZED SDK enabled") - else() - message(STATUS "ZED SDK not found") - set(ENABLE_ZED_CAMERA "FALSE" CACHE BOOL "Enable ZED Camera support" FORCE) - endif() - endif() -else() - message(STATUS "ZED SDK not enabled, since it requires CUDA") - set(ENABLE_ZED_CAMERA "FALSE" CACHE BOOL "Enable ZED Camera support" FORCE) -endif() - -set(CMAKE_THREAD_PREFER_PTHREAD ON) -find_package(Threads REQUIRED) -if(MSVC) - find_package(PThreads_windows REQUIRED) -endif() - -if(${CMAKE_VERSION} VERSION_LESS "3.9.0") - message(WARNING "To build with OpenMP support you need CMake 3.9.0+") -else() - find_package(OpenMP) - if(OPENMP_FOUND) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") - endif() -endif() - #look for all *.h files in src folder file(GLOB headers "${CMAKE_CURRENT_LIST_DIR}/src/*.h") #add also files in the include folder list(APPEND headers ${CMAKE_CURRENT_LIST_DIR}/include/darknet.h ) -#remove windows only files, will be re-added if necessary later -list(REMOVE_ITEM headers - ${CMAKE_CURRENT_LIST_DIR}/src/gettimeofday.h - ${CMAKE_CURRENT_LIST_DIR}/src/getopt.h -) -set(exported_headers ${headers}) +#remove windows only files +if(NOT WIN32) + list(REMOVE_ITEM headers + ${CMAKE_CURRENT_LIST_DIR}/src/gettimeofday.h + ${CMAKE_CURRENT_LIST_DIR}/src/getopt.h + ) +endif() +#set(exported_headers ${headers}) #look for all *.c files in src folder file(GLOB sources "${CMAKE_CURRENT_LIST_DIR}/src/*.c") @@ -240,107 +212,140 @@ list(APPEND sources list(REMOVE_ITEM sources ${CMAKE_CURRENT_LIST_DIR}/src/darknet.c ) -#remove windows only files, will be re-added if necessary later -list(REMOVE_ITEM sources - ${CMAKE_CURRENT_LIST_DIR}/src/gettimeofday.c - ${CMAKE_CURRENT_LIST_DIR}/src/getopt.c -) +#remove windows only files +if(NOT WIN32) + list(REMOVE_ITEM sources + ${CMAKE_CURRENT_LIST_DIR}/src/gettimeofday.c + ${CMAKE_CURRENT_LIST_DIR}/src/getopt.c + ) +endif() if(ENABLE_CUDA) file(GLOB cuda_sources "${CMAKE_CURRENT_LIST_DIR}/src/*.cu") endif() -if(WIN32) - list(APPEND sources - ${CMAKE_CURRENT_LIST_DIR}/src/gettimeofday.c - ${CMAKE_CURRENT_LIST_DIR}/src/getopt.c - ) +#set_source_files_properties(${sources} PROPERTIES LANGUAGE CXX) - list(APPEND headers - ${CMAKE_CURRENT_LIST_DIR}/src/gettimeofday.h - ${CMAKE_CURRENT_LIST_DIR}/src/getopt.h - ) -endif() - -set_source_files_properties(${sources} PROPERTIES LANGUAGE CXX) - -add_library(darklib ${CMAKE_CURRENT_LIST_DIR}/include/yolo_v2_class.hpp ${CMAKE_CURRENT_LIST_DIR}/src/yolo_v2_class.cpp ${sources} ${headers} ${cuda_sources}) -set_target_properties(darklib PROPERTIES POSITION_INDEPENDENT_CODE ON) +add_library(dark ${CMAKE_CURRENT_LIST_DIR}/include/yolo_v2_class.hpp ${CMAKE_CURRENT_LIST_DIR}/src/yolo_v2_class.cpp ${sources} ${headers} ${cuda_sources}) +set_target_properties(dark PROPERTIES POSITION_INDEPENDENT_CODE ON) if(ENABLE_CUDA) - set_target_properties(darklib PROPERTIES CUDA_SEPARABLE_COMPILATION ON) + set_target_properties(dark PROPERTIES CUDA_SEPARABLE_COMPILATION ON) endif() -target_compile_definitions(darklib PRIVATE LIB_EXPORTS=1) -set_target_properties(darklib PROPERTIES LINKER_LANGUAGE CXX) +if(BUILD_SHARED_LIBS) + target_compile_definitions(dark PRIVATE LIB_EXPORTS=1) +endif() +#set_target_properties(dark PROPERTIES LINKER_LANGUAGE CXX) if(OpenCV_FOUND AND OpenCV_VERSION VERSION_GREATER "3.0" AND NOT SKIP_USELIB_TRACK) add_executable(uselib_track ${CMAKE_CURRENT_LIST_DIR}/src/yolo_console_dll.cpp) - target_compile_definitions(uselib_track PRIVATE TRACK_OPTFLOW=1) - set_target_properties(uselib_track PROPERTIES LINKER_LANGUAGE CXX) - target_include_directories(uselib_track PUBLIC $ $ $ $) - target_link_libraries(uselib_track PRIVATE ${OpenCV_LIBS}) endif() add_executable(uselib ${CMAKE_CURRENT_LIST_DIR}/src/yolo_console_dll.cpp) -set_target_properties(uselib PROPERTIES LINKER_LANGUAGE CXX) +#set_target_properties(uselib PROPERTIES LINKER_LANGUAGE CXX) add_executable(darknet ${CMAKE_CURRENT_LIST_DIR}/src/darknet.c ${sources} ${headers} ${cuda_sources}) -set_source_files_properties(${CMAKE_CURRENT_LIST_DIR}/src/darknet.c PROPERTIES LANGUAGE CXX) -set_target_properties(darknet PROPERTIES LINKER_LANGUAGE CXX) +#set_source_files_properties(${CMAKE_CURRENT_LIST_DIR}/src/darknet.c PROPERTIES LANGUAGE CXX) +#set_target_properties(darknet PROPERTIES LINKER_LANGUAGE CXX) -target_include_directories(darknet PUBLIC $ $ $ $) -target_include_directories(darklib PUBLIC $ $ $ $) -target_include_directories(uselib PUBLIC $ $ $ $) +target_include_directories(darknet PUBLIC $ $ $ $) +target_include_directories(dark PUBLIC $ $ $ $) +target_include_directories(uselib PUBLIC $ $ $ $) + +target_compile_definitions(darknet PRIVATE -DUSE_CMAKE_LIBS) +target_compile_definitions(dark PRIVATE -DUSE_CMAKE_LIBS) +target_compile_definitions(uselib PRIVATE -DUSE_CMAKE_LIBS) if(CUDNN_FOUND) target_link_libraries(darknet PRIVATE CuDNN::CuDNN) - target_link_libraries(darklib PRIVATE CuDNN::CuDNN) + target_link_libraries(dark PRIVATE CuDNN::CuDNN) + target_compile_definitions(darknet PRIVATE -DCUDNN) + target_compile_definitions(dark PUBLIC -DCUDNN) + if(ENABLE_CUDNN_HALF) + target_compile_definitions(darknet PRIVATE -DCUDNN_HALF) + target_compile_definitions(dark PUBLIC -DCUDNN_HALF) + endif() endif() if(OpenCV_FOUND) target_link_libraries(darknet PRIVATE ${OpenCV_LIBS}) target_link_libraries(uselib PRIVATE ${OpenCV_LIBS}) - target_link_libraries(darklib PRIVATE ${OpenCV_LIBS}) + target_link_libraries(dark PRIVATE ${OpenCV_LIBS}) + target_compile_definitions(darknet PRIVATE -DOPENCV) + target_compile_definitions(dark PUBLIC -DOPENCV) endif() if(OPENMP_FOUND) - target_link_libraries(darknet PRIVATE OpenMP::OpenMP_CXX) - target_link_libraries(darklib PRIVATE OpenMP::OpenMP_CXX) + target_link_libraries(darknet PUBLIC OpenMP::OpenMP_CXX) + target_link_libraries(darknet PUBLIC OpenMP::OpenMP_C) + target_link_libraries(dark PUBLIC OpenMP::OpenMP_CXX) + target_link_libraries(dark PUBLIC OpenMP::OpenMP_C) endif() if(CMAKE_COMPILER_IS_GNUCC) target_link_libraries(darknet PRIVATE m) - target_link_libraries(darklib PRIVATE m) + target_link_libraries(dark PRIVATE m) endif() if(MSVC) target_link_libraries(darknet PRIVATE PThreads_windows::PThreads_windows) target_link_libraries(darknet PRIVATE wsock32 ws2_32) - target_link_libraries(darklib PRIVATE PThreads_windows::PThreads_windows) - target_link_libraries(darklib PRIVATE wsock32 ws2_32) + target_link_libraries(dark PRIVATE PThreads_windows::PThreads_windows) + target_link_libraries(dark PRIVATE wsock32 ws2_32) + target_compile_definitions(darknet PRIVATE -D_CRT_RAND_S -DNOMINMAX -D_USE_MATH_DEFINES) + target_compile_definitions(dark PRIVATE -D_CRT_RAND_S -DNOMINMAX -D_USE_MATH_DEFINES) + target_compile_definitions(uselib PRIVATE -D_CRT_RAND_S -DNOMINMAX -D_USE_MATH_DEFINES) endif() target_link_libraries(darknet PRIVATE Threads::Threads) -target_link_libraries(darklib PRIVATE Threads::Threads) +target_link_libraries(dark PRIVATE Threads::Threads) if(ENABLE_ZED_CAMERA) target_link_libraries(darknet PRIVATE ${ZED_LIBRARIES}) + target_link_libraries(dark PRIVATE ${ZED_LIBRARIES}) target_link_libraries(uselib PRIVATE ${ZED_LIBRARIES}) + target_compile_definitions(darknet PRIVATE -DZED_STEREO) + target_compile_definitions(uselib PRIVATE -DZED_STEREO) + target_compile_definitions(dark PRIVATE -DZED_STEREO) endif() if(ENABLE_CUDA) + target_include_directories(darknet PUBLIC ${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES}) + target_include_directories(dark PUBLIC ${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES}) target_link_libraries(darknet PRIVATE curand cublas cuda) - target_link_libraries(darklib PRIVATE curand cublas cuda) - set_target_properties(darklib PROPERTIES CUDA_RESOLVE_DEVICE_SYMBOLS ON) + target_link_libraries(dark PRIVATE curand cublas cuda) + set_target_properties(dark PROPERTIES CUDA_RESOLVE_DEVICE_SYMBOLS ON) + target_compile_definitions(darknet PRIVATE -DGPU) + target_compile_definitions(dark PUBLIC -DGPU) endif() -target_link_libraries(uselib PRIVATE darklib) +if(USE_INTEGRATED_LIBS) + target_compile_definitions(darknet PRIVATE -D_TIMESPEC_DEFINED) + target_compile_definitions(dark PRIVATE -D_TIMESPEC_DEFINED) +endif() + +target_link_libraries(uselib PRIVATE dark) if(OpenCV_FOUND AND OpenCV_VERSION VERSION_GREATER "3.0" AND NOT SKIP_USELIB_TRACK) - target_link_libraries(uselib_track PRIVATE darklib) + target_link_libraries(uselib_track PRIVATE dark) + target_compile_definitions(uselib_track PRIVATE TRACK_OPTFLOW=1) + target_compile_definitions(uselib_track PRIVATE -DUSE_CMAKE_LIBS) + #set_target_properties(uselib_track PROPERTIES LINKER_LANGUAGE CXX) + target_include_directories(uselib_track PRIVATE ${CMAKE_CURRENT_LIST_DIR}/include) + target_link_libraries(uselib_track PRIVATE ${OpenCV_LIBS}) + if(ENABLE_ZED_CAMERA) + target_link_libraries(uselib_track PRIVATE ${ZED_LIBRARIES}) + target_compile_definitions(uselib_track PRIVATE -DZED_STEREO) + endif() + if(MSVC) + target_compile_definitions(uselib_track PRIVATE -D_CRT_RAND_S -DNOMINMAX -D_USE_MATH_DEFINES) + endif() endif() -set_target_properties(darklib PROPERTIES PUBLIC_HEADER "${exported_headers};${CMAKE_CURRENT_LIST_DIR}/include/yolo_v2_class.hpp") +#set_target_properties(dark PROPERTIES PUBLIC_HEADER "${exported_headers};${CMAKE_CURRENT_LIST_DIR}/include/yolo_v2_class.hpp") +set_target_properties(dark PROPERTIES PUBLIC_HEADER "${CMAKE_CURRENT_LIST_DIR}/include/darknet.h;${CMAKE_CURRENT_LIST_DIR}/include/yolo_v2_class.hpp") -install(TARGETS darklib EXPORT DarknetTargets +set_target_properties(dark PROPERTIES CXX_VISIBILITY_PRESET hidden) + +install(TARGETS dark EXPORT DarknetTargets RUNTIME DESTINATION "${INSTALL_BIN_DIR}" LIBRARY DESTINATION "${INSTALL_LIB_DIR}" ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" diff --git a/CMakeSettings.json b/CMakeSettings.json deleted file mode 100644 index 4df04b61..00000000 --- a/CMakeSettings.json +++ /dev/null @@ -1,212 +0,0 @@ -{ - "configurations": [ - { - "buildCommandArgs": "-m -v:minimal", - "buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}", - "cmakeCommandArgs": "", - "configurationType": "Release", - "generator": "Visual Studio 15 2017 Win64", - "name": "x64-Release-int-libs", - "variables": [ - { - "name": "USE_INTEGRATED_LIBS", - "value": "TRUE" - } - ] - }, - { - "buildCommandArgs": "-m -v:minimal", - "buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}", - "cmakeCommandArgs": "", - "configurationType": "Debug", - "generator": "Visual Studio 15 2017 Win64", - "name": "x64-Debug static", - "variables": [{ - "name": "CMAKE_TOOLCHAIN_FILE", - "value": "${env.VCPKG_ROOT}\\scripts\\buildsystems\\vcpkg.cmake" - }, - { - "name": "USE_INTEGRATED_LIBS", - "value": "FALSE" - }, - { - "name": "VCPKG_TARGET_TRIPLET", - "value": "${env.VCPKG_DEFAULT_TRIPLET}" - } - ] - }, { - "buildCommandArgs": "-m -v:minimal", - "buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}", - "cmakeCommandArgs": "", - "configurationType": "Release", - "generator": "Visual Studio 15 2017 Win64", - "name": "x64-Release static", - "variables": [{ - "name": "CMAKE_TOOLCHAIN_FILE", - "value": "${env.VCPKG_ROOT}\\scripts\\buildsystems\\vcpkg.cmake" - }, - { - "name": "USE_INTEGRATED_LIBS", - "value": "FALSE" - }, - { - "name": "VCPKG_TARGET_TRIPLET", - "value": "${env.VCPKG_DEFAULT_TRIPLET}" - } - ] - }, { - "buildCommandArgs": "-m -v:minimal", - "buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}", - "cmakeCommandArgs": "", - "configurationType": "Debug", - "generator": "Visual Studio 15 2017 Win64", - "name": "x64-Debug static w/ CUDA", - "variables": [{ - "name": "CMAKE_TOOLCHAIN_FILE", - "value": "${env.VCPKG_ROOT}\\scripts\\buildsystems\\vcpkg.cmake" - }, - { - "name": "USE_INTEGRATED_LIBS", - "value": "FALSE" - }, - { - "name": "CUDA_COMPUTE_MODEL", - "value": "30" - }, - { - "name": "VCPKG_TARGET_TRIPLET", - "value": "${env.VCPKG_DEFAULT_TRIPLET}" - } - ] - }, { - "buildCommandArgs": "-m -v:minimal", - "buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}", - "cmakeCommandArgs": "", - "configurationType": "Release", - "generator": "Visual Studio 15 2017 Win64", - "name": "x64-Release static w/ CUDA", - "variables": [{ - "name": "CMAKE_TOOLCHAIN_FILE", - "value": "${env.VCPKG_ROOT}\\scripts\\buildsystems\\vcpkg.cmake" - }, - { - "name": "USE_INTEGRATED_LIBS", - "value": "FALSE" - }, - { - "name": "CUDA_COMPUTE_MODEL", - "value": "30" - }, - { - "name": "VCPKG_TARGET_TRIPLET", - "value": "${env.VCPKG_DEFAULT_TRIPLET}" - } - ] - } - { - "buildCommandArgs": "-m -v:minimal", - "buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}", - "cmakeCommandArgs": "", - "configurationType": "Debug", - "generator": "Visual Studio 15 2017 Win64", - "name": "x64-Debug dynamic", - "variables": [{ - "name": "CMAKE_TOOLCHAIN_FILE", - "value": "${env.VCPKG_ROOT}\\scripts\\buildsystems\\vcpkg.cmake" - }, - { - "name": "USE_INTEGRATED_LIBS", - "value": "FALSE" - }, - { - "name": "BUILD_SHARED_LIBS", - "value": "TRUE" - }, - { - "name": "VCPKG_TARGET_TRIPLET", - "value": "${env.VCPKG_DEFAULT_TRIPLET}" - } - ] - }, { - "buildCommandArgs": "-m -v:minimal", - "buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}", - "cmakeCommandArgs": "", - "configurationType": "Release", - "generator": "Visual Studio 15 2017 Win64", - "name": "x64-Release dynamic", - "variables": [{ - "name": "CMAKE_TOOLCHAIN_FILE", - "value": "${env.VCPKG_ROOT}\\scripts\\buildsystems\\vcpkg.cmake" - }, - { - "name": "USE_INTEGRATED_LIBS", - "value": "FALSE" - }, - { - "name": "BUILD_SHARED_LIBS", - "value": "TRUE" - }, - { - "name": "VCPKG_TARGET_TRIPLET", - "value": "${env.VCPKG_DEFAULT_TRIPLET}" - } - ] - }, { - "buildCommandArgs": "-m -v:minimal", - "buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}", - "cmakeCommandArgs": "", - "configurationType": "Debug", - "generator": "Visual Studio 15 2017 Win64", - "name": "x64-Debug dynamic w/ CUDA", - "variables": [{ - "name": "CMAKE_TOOLCHAIN_FILE", - "value": "${env.VCPKG_ROOT}\\scripts\\buildsystems\\vcpkg.cmake" - }, - { - "name": "USE_INTEGRATED_LIBS", - "value": "FALSE" - }, - { - "name": "CUDA_COMPUTE_MODEL", - "value": "30" - }, - { - "name": "BUILD_SHARED_LIBS", - "value": "TRUE" - }, - { - "name": "VCPKG_TARGET_TRIPLET", - "value": "${env.VCPKG_DEFAULT_TRIPLET}" - } - ] - }, { - "buildCommandArgs": "-m -v:minimal", - "buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}", - "cmakeCommandArgs": "", - "configurationType": "Release", - "generator": "Visual Studio 15 2017 Win64", - "name": "x64-Release dynamic w/ CUDA", - "variables": [{ - "name": "CMAKE_TOOLCHAIN_FILE", - "value": "${env.VCPKG_ROOT}\\scripts\\buildsystems\\vcpkg.cmake" - }, - { - "name": "USE_INTEGRATED_LIBS", - "value": "FALSE" - }, - { - "name": "CUDA_COMPUTE_MODEL", - "value": "30" - }, - { - "name": "BUILD_SHARED_LIBS", - "value": "TRUE" - }, - { - "name": "VCPKG_TARGET_TRIPLET", - "value": "${env.VCPKG_DEFAULT_TRIPLET}" - } - ] - } - ] -} diff --git a/DarknetConfig.cmake.in b/DarknetConfig.cmake.in index 2c137516..169cfa9b 100644 --- a/DarknetConfig.cmake.in +++ b/DarknetConfig.cmake.in @@ -1,47 +1,32 @@ # Config file for the Darknet package -# It defines the following variables -# Darknet_INCLUDE_DIRS - include directories for Darknet -# Darknet_LIBRARIES - libraries to link against -# Compute paths get_filename_component(Darknet_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) -set(Darknet_INCLUDE_DIRS "@CONF_INCLUDE_DIRS@") list(APPEND CMAKE_MODULE_PATH "${Darknet_CMAKE_DIR}") include(CMakeFindDependencyMacro) -if(@ENABLE_OPENCV@) - find_dependency(OpenCV REQUIRED) - add_definitions(-DOPENCV) +if(@OpenCV_FOUND@) + find_dependency(OpenCV) endif() -find_dependency(Stb REQUIRED) +find_dependency(Stb) if(@ENABLE_CUDA@) - find_dependency(CUDNN) - add_definitions(-DGPU) - if(CUDNN_FOUND) - add_definitions(-DCUDNN) - if(@CUDA_COMPUTE_MODEL@ VERSION_GREATER_EQUAL @CUDA_COMPUTE_MODEL_70@) - add_definitions(-DCUDNN_HALF) - message(STATUS "Enabled CUDNN_HALF") - endif() + if(@CUDNN_FOUND@) + find_dependency(CUDNN) endif() endif() set(CMAKE_THREAD_PREFER_PTHREAD ON) find_dependency(Threads) -if(MSVC) +if(@MSVC@) find_dependency(PThreads_windows) endif() -if("${CMAKE_VERSION}" VERSION_GREATER "3.9.0") +if(@OPENMP_FOUND@) find_dependency(OpenMP) endif() # Our library dependencies (contains definitions for IMPORTED targets) include("${Darknet_CMAKE_DIR}/DarknetTargets.cmake") - -# These are IMPORTED targets created by DarknetTargets.cmake -set(Darknet_LIBRARIES darklib) diff --git a/appveyor.yml b/appveyor.yml index 911ed3d1..08ce819b 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -67,7 +67,8 @@ install: - if [%COMPILER%]==[vs] if NOT [%USE_INTEGRATED_LIBS%]==[yes] git pull - if [%COMPILER%]==[vs] if NOT [%USE_INTEGRATED_LIBS%]==[yes] .\bootstrap-vcpkg.bat - if [%COMPILER%]==[vs] if NOT [%USE_INTEGRATED_LIBS%]==[yes] if [%USE_CUDA%]==[yes] vcpkg install cuda - - if [%COMPILER%]==[vs] if NOT [%USE_INTEGRATED_LIBS%]==[yes] vcpkg install opencv[ffmpeg] pthreads ## opencv[ffmpeg,cuda] is too big to build, timing out (>1h). We use plain openCV also for CUDA builds (toolchain can manage this strange situation anyway) + - if [%COMPILER%]==[vs] if NOT [%USE_INTEGRATED_LIBS%]==[yes] vcpkg install stb pthreads + - if [%COMPILER%]==[vs] if NOT [%USE_INTEGRATED_LIBS%]==[yes] vcpkg install opencv[ffmpeg] ## opencv[ffmpeg,cuda] is too big to build, timing out (>1h). We use plain openCV also for CUDA builds (toolchain can manage this strange situation anyway) - cd %WORKSPACE%\darknet\ - mkdir build_debug && cd build_debug - if [%COMPILER%]==[cygwin] %CYGSH% 'cmake .. -G "Unix Makefiles" -DCMAKE_BUILD_TYPE="Debug"' diff --git a/build.ps1 b/build.ps1 index e18ee4fa..b36d3054 100755 --- a/build.ps1 +++ b/build.ps1 @@ -3,18 +3,6 @@ $number_of_build_workers=8 $force_using_include_libs=$false -#$my_cuda_compute_model=75 #Compute capability for Tesla T4, RTX 2080 -#$my_cuda_compute_model=72 #Compute capability for Jetson Xavier -#$my_cuda_compute_model=70 #Compute capability for Tesla V100 -#$my_cuda_compute_model=62 #Compute capability for Jetson TX2 -#$my_cuda_compute_model=61 #Compute capability for Tesla P40 -#$my_cuda_compute_model=60 #Compute capability for Tesla P100 -#$my_cuda_compute_model=53 #Compute capability for Jetson TX1 -#$my_cuda_compute_model=52 #Compute capability for Tesla M40/M60 -#$my_cuda_compute_model=37 #Compute capability for Tesla K80 -#$my_cuda_compute_model=35 #Compute capability for Tesla K20/K40 -#$my_cuda_compute_model=30 #Compute capability for Tesla K10, Quadro K4000 - function getProgramFiles32bit() { $out = ${env:PROGRAMFILES(X86)} if ($null -eq $out) { @@ -153,13 +141,6 @@ if (Test-Path env:CUDA_PATH) { $env:CUDA_TOOLKIT_ROOT_DIR = "${env:CUDA_PATH}" Write-Host "Added missing env variable CUDA_TOOLKIT_ROOT_DIR" -ForegroundColor Yellow } - if ($my_cuda_compute_model) { - $additional_build_setup = "-DCUDA_COMPUTE_MODEL=${my_cuda_compute_model}" - Write-Host "Using compute capability ${my_cuda_compute_model}" -ForegroundColor Yellow - } - else { - Write-Host "Using default compute capability" -ForegroundColor Yellow - } } diff --git a/build.sh b/build.sh index a14db12e..8bbabf2f 100755 --- a/build.sh +++ b/build.sh @@ -1,18 +1,5 @@ #!/usr/bin/env bash -## by default darknet is built with CC 3.0 if cuda is found. Uncomment another CC (only one!) if you prefer a different choice -#my_cuda_compute_model=75 #Compute capability for Tesla T4, RTX 2080 -#my_cuda_compute_model=72 #Compute capability for Jetson Xavier -#my_cuda_compute_model=70 #Compute capability for Tesla V100 -#my_cuda_compute_model=62 #Compute capability for Jetson TX2 -#my_cuda_compute_model=61 #Compute capability for Tesla P40 -#my_cuda_compute_model=60 #Compute capability for Tesla P100 -#my_cuda_compute_model=53 #Compute capability for Jetson TX1 -#my_cuda_compute_model=52 #Compute capability for Tesla M40/M60 -#my_cuda_compute_model=37 #Compute capability for Tesla K80 -#my_cuda_compute_model=35 #Compute capability for Tesla K20/K40 -#my_cuda_compute_model=30 #Compute capability for Tesla K10, Quadro K4000 - number_of_build_workers=8 bypass_vcpkg=true @@ -21,22 +8,18 @@ if [[ "$OSTYPE" == "darwin"* ]]; then export CC="/usr/local/bin/gcc-8" export CXX="/usr/local/bin/g++-8" fi - vcpkg_triplet="x64-darwin" + vcpkg_triplet="x64-osx" else vcpkg_triplet="x64-linux" fi -if [[ ! -z "$my_cuda_compute_model" ]]; then - additional_build_setup="-DCUDA_COMPUTE_MODEL=${my_cuda_compute_model}" -fi - -if [[ -d ${VCPKG_ROOT} ]] && [ ! "$bypass_vcpkg" = true ] +if [[ ! -z "${VCPKG_ROOT}" ]] && [ -d ${VCPKG_ROOT} ] && [ ! "$bypass_vcpkg" = true ] then vcpkg_path="${VCPKG_ROOT}" vcpkg_define="-DCMAKE_TOOLCHAIN_FILE=${vcpkg_path}/scripts/buildsystems/vcpkg.cmake" vcpkg_triplet_define="-DVCPKG_TARGET_TRIPLET=$vcpkg_triplet" echo "Found vcpkg in VCPKG_ROOT: ${vcpkg_path}" -elif [ -d ${WORKSPACE}/vcpkg${vcpkg_fork} ] && [ ! "$bypass_vcpkg" = true ] +elif [[ ! -z "${WORKSPACE}" ]] && [ -d ${WORKSPACE}/vcpkg ] && [ ! "$bypass_vcpkg" = true ] then vcpkg_path="${WORKSPACE}/vcpkg" vcpkg_define="-DCMAKE_TOOLCHAIN_FILE=${vcpkg_path}/scripts/buildsystems/vcpkg.cmake" diff --git a/cmake/Modules/FindCUDNN.cmake b/cmake/Modules/FindCUDNN.cmake index 04c5eed2..3a6bc0d6 100644 --- a/cmake/Modules/FindCUDNN.cmake +++ b/cmake/Modules/FindCUDNN.cmake @@ -60,8 +60,10 @@ endif() set(CUDNN_INCLUDE_DIRS ${CUDNN_INCLUDE_DIR}) set(CUDNN_LIBRARIES ${CUDNN_LIBRARY}) -message(STATUS "Found cuDNN: v${CUDNN_VERSION} (include: ${CUDNN_INCLUDE_DIR}, library: ${CUDNN_LIBRARY})") -mark_as_advanced(CUDNN_ROOT_DIR CUDNN_LIBRARY CUDNN_INCLUDE_DIR) +if(CUDNN_FOUND) + message(STATUS "Found cuDNN: v${CUDNN_VERSION} (include: ${CUDNN_INCLUDE_DIR}, library: ${CUDNN_LIBRARY})") +endif() +mark_as_advanced(CUDNN_LIBRARY CUDNN_INCLUDE_DIR) # Register imported libraries: # 1. If we can find a Windows .dll file (or if we can find both Debug and @@ -75,7 +77,7 @@ if(WIN32) endif() if( CUDNN_FOUND AND NOT TARGET CuDNN::CuDNN ) - if( EXISTS "${CUDNN_LIBRARY_RELEASE_DLL}" ) + if( EXISTS "${CUDNN_LIBRARY_DLL}" ) add_library( CuDNN::CuDNN SHARED IMPORTED ) set_target_properties( CuDNN::CuDNN PROPERTIES IMPORTED_LOCATION "${CUDNN_LIBRARY_DLL}" diff --git a/include/darknet.h b/include/darknet.h index 494bed2f..7fe2d0b2 100644 --- a/include/darknet.h +++ b/include/darknet.h @@ -36,12 +36,12 @@ #ifdef GPU -#include "cuda_runtime.h" -#include "curand.h" -#include "cublas_v2.h" +#include +#include +#include #ifdef CUDNN -#include "cudnn.h" +#include #endif #endif diff --git a/src/activation_kernels.cu b/src/activation_kernels.cu index 4e5fa9f8..6fd23c2e 100644 --- a/src/activation_kernels.cu +++ b/src/activation_kernels.cu @@ -1,7 +1,7 @@ #include "darknet.h" -#include "cuda_runtime.h" -#include "curand.h" -#include "cublas_v2.h" +#include +#include +#include #include "activations.h" #include "dark_cuda.h" diff --git a/src/avgpool_layer_kernels.cu b/src/avgpool_layer_kernels.cu index 676faa69..b8cdd603 100644 --- a/src/avgpool_layer_kernels.cu +++ b/src/avgpool_layer_kernels.cu @@ -1,6 +1,6 @@ -#include "cuda_runtime.h" -#include "curand.h" -#include "cublas_v2.h" +#include +#include +#include #include "avgpool_layer.h" #include "dark_cuda.h" diff --git a/src/blas_kernels.cu b/src/blas_kernels.cu index 8474ebde..55d5e5d4 100644 --- a/src/blas_kernels.cu +++ b/src/blas_kernels.cu @@ -1,6 +1,6 @@ -#include "cuda_runtime.h" -#include "curand.h" -#include "cublas_v2.h" +#include +#include +#include #include #include "blas.h" @@ -1035,7 +1035,6 @@ extern "C" int is_nan_or_inf(float *input, size_t size) return ret_val; } - __global__ void add_3_arrays_activate_kernel(float *a1, float *a2, float *a3, size_t size, ACTIVATION a, float *dst) { const int index = blockIdx.x*blockDim.x + threadIdx.x; @@ -1097,4 +1096,4 @@ extern "C" void activate_and_mult(float *a1, float *a2, size_t size, ACTIVATION exit(EXIT_FAILURE); } activate_and_mult_kernel << > >(a1, a2, size, a, dst); -} \ No newline at end of file +} diff --git a/src/col2im_kernels.cu b/src/col2im_kernels.cu index 2f18a0fd..a6e985f1 100644 --- a/src/col2im_kernels.cu +++ b/src/col2im_kernels.cu @@ -1,6 +1,6 @@ -#include "cuda_runtime.h" -#include "curand.h" -#include "cublas_v2.h" +#include +#include +#include #include "col2im.h" #include "dark_cuda.h" diff --git a/src/convolutional_kernels.cu b/src/convolutional_kernels.cu index 2e8432ba..a26b95ea 100644 --- a/src/convolutional_kernels.cu +++ b/src/convolutional_kernels.cu @@ -1,6 +1,6 @@ -#include "cuda_runtime.h" -#include "curand.h" -#include "cublas_v2.h" +#include +#include +#include #include "convolutional_layer.h" #include "batchnorm_layer.h" diff --git a/src/crop_layer_kernels.cu b/src/crop_layer_kernels.cu index 46afca6c..85783bcc 100644 --- a/src/crop_layer_kernels.cu +++ b/src/crop_layer_kernels.cu @@ -1,6 +1,6 @@ -#include "cuda_runtime.h" -#include "curand.h" -#include "cublas_v2.h" +#include +#include +#include #include "crop_layer.h" #include "utils.h" diff --git a/src/deconvolutional_kernels.cu b/src/deconvolutional_kernels.cu index 472b2247..6af65ebb 100644 --- a/src/deconvolutional_kernels.cu +++ b/src/deconvolutional_kernels.cu @@ -1,6 +1,6 @@ -#include "cuda_runtime.h" -#include "curand.h" -#include "cublas_v2.h" +#include +#include +#include #include "convolutional_layer.h" #include "deconvolutional_layer.h" diff --git a/src/dropout_layer_kernels.cu b/src/dropout_layer_kernels.cu index ceba0fa3..d3af0ea6 100644 --- a/src/dropout_layer_kernels.cu +++ b/src/dropout_layer_kernels.cu @@ -1,6 +1,6 @@ -#include "cuda_runtime.h" -#include "curand.h" -#include "cublas_v2.h" +#include +#include +#include #include "dropout_layer.h" #include "dark_cuda.h" diff --git a/src/maxpool_layer_kernels.cu b/src/maxpool_layer_kernels.cu index 36fccf32..341a5b8b 100644 --- a/src/maxpool_layer_kernels.cu +++ b/src/maxpool_layer_kernels.cu @@ -1,6 +1,6 @@ -#include "cuda_runtime.h" -#include "curand.h" -#include "cublas_v2.h" +#include +#include +#include #include "maxpool_layer.h" #include "dark_cuda.h"