From 77917d02fb8ffbdcb3a27a81db3578e45cdd8ad7 Mon Sep 17 00:00:00 2001 From: Stefano Sinigardi Date: Wed, 17 Apr 2019 11:31:09 +0200 Subject: [PATCH 01/21] [headers] move .h files to our own subfolder to avoid clashes with other libraries --- .gitignore | 2 +- CMakeLists.txt | 15 ++++++++++----- DarknetConfig.cmake.in | 19 ++++++------------- 3 files changed, 17 insertions(+), 19 deletions(-) diff --git a/.gitignore b/.gitignore index 68a7a13b..fa45a2df 100644 --- a/.gitignore +++ b/.gitignore @@ -35,5 +35,5 @@ Thumbs.db .vscode/ lib/ -include/ +include/darknet/ share/ diff --git a/CMakeLists.txt b/CMakeLists.txt index 585eb0ed..75861f39 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -47,6 +47,8 @@ configure_file( ) set(ENABLE_CUDA "TRUE" CACHE BOOL "Enable CUDA build") +set(ENABLE_CUDNN "FALSE" CACHE BOOL "Enable CUDNN") +set(ENABLE_OPENMP "TRUE" CACHE BOOL "Enable OpenMP") 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+") @@ -146,6 +148,7 @@ if(ENABLE_CUDA) find_package(CUDNN) if(CUDNN_FOUND) add_definitions(-DCUDNN) + set(ENABLE_CUDNN "TRUE" CACHE BOOL "Enable CUDNN" FORCE) if(CUDA_COMPUTE_MODEL VERSION_GREATER_EQUAL ${CUDA_COMPUTE_MODEL_70}) add_definitions(-DCUDNN_HALF) message(STATUS "Enabled CUDNN_HALF") @@ -213,6 +216,8 @@ else() find_package(OpenMP) if(OPENMP_FOUND) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") + else() + set(ENABLE_OPENMP "FALSE" CACHE BOOL "Enable OpenMP" FORCE) endif() endif() @@ -276,7 +281,7 @@ if(OpenCV_FOUND AND OpenCV_VERSION VERSION_GREATER "3.0" AND NOT SKIP_USELIB_TRA 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_include_directories(uselib_track PUBLIC $ $ $ $) target_link_libraries(uselib_track PRIVATE ${OpenCV_LIBS}) endif() @@ -287,9 +292,9 @@ add_executable(darknet ${CMAKE_CURRENT_LIST_DIR}/src/darknet.c ${sources} ${head 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(darklib PUBLIC $ $ $ $) +target_include_directories(uselib PUBLIC $ $ $ $) if(CUDNN_FOUND) target_link_libraries(darknet PRIVATE CuDNN::CuDNN) @@ -344,7 +349,7 @@ install(TARGETS darklib EXPORT DarknetTargets RUNTIME DESTINATION "${INSTALL_BIN_DIR}" LIBRARY DESTINATION "${INSTALL_LIB_DIR}" ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" - PUBLIC_HEADER DESTINATION "${INSTALL_INCLUDE_DIR}" + PUBLIC_HEADER DESTINATION "${INSTALL_INCLUDE_DIR}/darknet" COMPONENT dev ) install(TARGETS uselib darknet diff --git a/DarknetConfig.cmake.in b/DarknetConfig.cmake.in index 2c137516..2719ef5c 100644 --- a/DarknetConfig.cmake.in +++ b/DarknetConfig.cmake.in @@ -1,26 +1,21 @@ # 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) + find_dependency(OpenCV) add_definitions(-DOPENCV) endif() -find_dependency(Stb REQUIRED) +find_dependency(Stb) if(@ENABLE_CUDA@) - find_dependency(CUDNN) add_definitions(-DGPU) - if(CUDNN_FOUND) + if(@ENABLE_CUDNN@) + find_dependency(CUDNN) add_definitions(-DCUDNN) if(@CUDA_COMPUTE_MODEL@ VERSION_GREATER_EQUAL @CUDA_COMPUTE_MODEL_70@) add_definitions(-DCUDNN_HALF) @@ -36,12 +31,10 @@ if(MSVC) find_dependency(PThreads_windows) endif() -if("${CMAKE_VERSION}" VERSION_GREATER "3.9.0") +if(@ENABLE_OPENMP@) find_dependency(OpenMP) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") 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) From ff7d920a5db29f00e1a2a3ac5de353e37e35a401 Mon Sep 17 00:00:00 2001 From: Stefano Sinigardi Date: Wed, 17 Apr 2019 14:19:58 +0200 Subject: [PATCH 02/21] [build.sh] use correct osx triplet name --- build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sh b/build.sh index a14db12e..b69ebe6b 100755 --- a/build.sh +++ b/build.sh @@ -21,7 +21,7 @@ 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 From eebe735f8455c278ea9aa34831d00061c954bbdf Mon Sep 17 00:00:00 2001 From: Stefano Sinigardi Date: Thu, 18 Apr 2019 09:17:31 +0200 Subject: [PATCH 03/21] [FindCUDNN] fix unnecessary message and dll symbol --- cmake/Modules/FindCUDNN.cmake | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) 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}" From df0d33de29f1cbb54d174d5205aa4be02daad158 Mon Sep 17 00:00:00 2001 From: Stefano Sinigardi Date: Thu, 18 Apr 2019 09:40:57 +0200 Subject: [PATCH 04/21] [build.sh] fix problems with empty env variables --- build.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sh b/build.sh index b69ebe6b..481bbaf5 100755 --- a/build.sh +++ b/build.sh @@ -30,13 +30,13 @@ 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" From 6497ba1bfd1a0dbf8699d5b826c00c97c355a74e Mon Sep 17 00:00:00 2001 From: Stefano Sinigardi Date: Thu, 18 Apr 2019 16:16:55 +0200 Subject: [PATCH 05/21] [dark.lib] set correct function visibility when building shared libs also for non-msvc compilers --- .gitignore | 1 - CMakeLists.txt | 55 +++++++++++++++++++++++++++----------------------- 2 files changed, 30 insertions(+), 26 deletions(-) diff --git a/.gitignore b/.gitignore index fa45a2df..8ca9c8f7 100644 --- a/.gitignore +++ b/.gitignore @@ -35,5 +35,4 @@ Thumbs.db .vscode/ lib/ -include/darknet/ share/ diff --git a/CMakeLists.txt b/CMakeLists.txt index 75861f39..5be4f733 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 "") @@ -232,7 +232,7 @@ list(REMOVE_ITEM headers ${CMAKE_CURRENT_LIST_DIR}/src/gettimeofday.h ${CMAKE_CURRENT_LIST_DIR}/src/getopt.h ) -set(exported_headers ${headers}) +#set(exported_headers ${headers}) #look for all *.c files in src folder file(GLOB sources "${CMAKE_CURRENT_LIST_DIR}/src/*.c") @@ -269,19 +269,21 @@ 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_include_directories(uselib_track PUBLIC $ $ $ $) target_link_libraries(uselib_track PRIVATE ${OpenCV_LIBS}) endif() @@ -292,40 +294,40 @@ add_executable(darknet ${CMAKE_CURRENT_LIST_DIR}/src/darknet.c ${sources} ${head 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 $ $ $ $) if(CUDNN_FOUND) target_link_libraries(darknet PRIVATE CuDNN::CuDNN) - target_link_libraries(darklib PRIVATE CuDNN::CuDNN) + target_link_libraries(dark PRIVATE CuDNN::CuDNN) 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}) endif() if(OPENMP_FOUND) target_link_libraries(darknet PRIVATE OpenMP::OpenMP_CXX) - target_link_libraries(darklib PRIVATE OpenMP::OpenMP_CXX) + target_link_libraries(dark PRIVATE OpenMP::OpenMP_CXX) 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) 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}) @@ -334,22 +336,25 @@ endif() if(ENABLE_CUDA) 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) endif() -target_link_libraries(uselib PRIVATE darklib) +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) 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}" - PUBLIC_HEADER DESTINATION "${INSTALL_INCLUDE_DIR}/darknet" + PUBLIC_HEADER DESTINATION "${INSTALL_INCLUDE_DIR}" COMPONENT dev ) install(TARGETS uselib darknet From f0a158e0cd3d4481135c0648b7a8515365612f68 Mon Sep 17 00:00:00 2001 From: Stefano Sinigardi Date: Thu, 18 Apr 2019 18:03:35 +0200 Subject: [PATCH 06/21] [ci] add tests with vcpkg on linux --- .travis.yml | 57 ++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 52 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index b34ca94b..79875e7e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,8 @@ language: cpp +cache: + timeout: 1000 + directories: + - $HOME/vcpkg matrix: include: @@ -236,6 +240,22 @@ matrix: - additional_defines="" - MATRIX_EVAL="CC=gcc-8 && 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="CC=gcc-8 && CXX=g++-8" + - os: linux compiler: clang name: ubuntu 14.04 - native clang - opencv@2 @@ -842,24 +862,51 @@ matrix: - 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" + - 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 + - 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" + 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 + - ./bootstrap-vcpkg.sh + - if [[ USE_VCPKG = true ]] ; then travis_wait ./vcpkg install stb pthreads ; fi + - if [[ USE_VCPKG = true ]] && [[ ! -z "${CUDACXX}" ]] ; then travis_wait ./vcpkg install opencv[ffmpeg,cuda] ; fi + - if [[ USE_VCPKG = true ]] && [[ -z "${CUDACXX}" ]] ; then travis_wait ./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: From b8962b22ebc653b844e3a8915c5d6ca2f885fc23 Mon Sep 17 00:00:00 2001 From: Stefano Sinigardi Date: Thu, 18 Apr 2019 18:23:12 +0200 Subject: [PATCH 07/21] disable vcpkg bootstrap when not required --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 79875e7e..edf74c55 100644 --- a/.travis.yml +++ b/.travis.yml @@ -892,7 +892,7 @@ install: - 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 - - ./bootstrap-vcpkg.sh + - 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 ./vcpkg install opencv[ffmpeg,cuda] ; fi - if [[ USE_VCPKG = true ]] && [[ -z "${CUDACXX}" ]] ; then travis_wait ./vcpkg install opencv[ffmpeg] ; fi From 73cc42c96dc64cb478d5b661b99b9bc7cb56c9e4 Mon Sep 17 00:00:00 2001 From: Stefano Sinigardi Date: Tue, 23 Apr 2019 15:29:53 +0200 Subject: [PATCH 08/21] improve CI compatibility with updated opencv@2 and opencv@3 on mac, fix variable not expanded for vcpkg --- .gitignore | 5 +++++ .travis.yml | 16 ++++++++-------- DarknetConfig.cmake.in | 2 ++ 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index 8ca9c8f7..142b185d 100644 --- a/.gitignore +++ b/.gitignore @@ -34,5 +34,10 @@ Thumbs.db .vs/ .vscode/ +# Managed by CMake +src/version.h + +# Build artifacts lib/ share/ +include/darknet/ diff --git a/.travis.yml b/.travis.yml index edf74c55..cd999df2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,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" @@ -26,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" @@ -48,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" @@ -56,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" @@ -892,10 +892,10 @@ install: - 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 ./vcpkg install opencv[ffmpeg,cuda] ; fi - - if [[ USE_VCPKG = true ]] && [[ -z "${CUDACXX}" ]] ; then travis_wait ./vcpkg install opencv[ffmpeg] ; fi + - 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 ./vcpkg install opencv[ffmpeg,cuda] ; fi + - if [ "${USE_VCPKG}" = true ] && [[ -z "${CUDACXX}" ]] ; then travis_wait ./vcpkg install opencv[ffmpeg] ; fi - popd before_script: diff --git a/DarknetConfig.cmake.in b/DarknetConfig.cmake.in index 2719ef5c..6f43f729 100644 --- a/DarknetConfig.cmake.in +++ b/DarknetConfig.cmake.in @@ -29,6 +29,8 @@ find_dependency(Threads) if(MSVC) find_dependency(PThreads_windows) + #add_definitions(-D_CRT_SECURE_NO_WARNINGS) + #set(CMAKE_CXX_FLAGS "/wd4018 /wd4244 /wd4267 /wd4305 ${CMAKE_CXX_FLAGS}") endif() if(@ENABLE_OPENMP@) From b805bdebbd7f979ec71c22cca636fde7d8ae3a5a Mon Sep 17 00:00:00 2001 From: Stefano Sinigardi Date: Tue, 23 Apr 2019 17:25:48 +0200 Subject: [PATCH 09/21] [travis,cuda] add missing symbol --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index cd999df2..9ac9581c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -877,6 +877,7 @@ matrix: - 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 - 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" From 49986d5a20087ffaebb0a7397a7ffaf6218f47c7 Mon Sep 17 00:00:00 2001 From: Stefano Sinigardi Date: Tue, 23 Apr 2019 17:34:34 +0200 Subject: [PATCH 10/21] install header files to darknet/ subfolder --- CMakeLists.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5be4f733..79a84e5f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -31,7 +31,7 @@ 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_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") # Make relative paths absolute (needed later on) foreach(p LIB BIN INCLUDE CMAKE) @@ -283,7 +283,7 @@ if(OpenCV_FOUND AND OpenCV_VERSION VERSION_GREATER "3.0" AND NOT SKIP_USELIB_TRA 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_include_directories(uselib_track PUBLIC $ $ $ $) target_link_libraries(uselib_track PRIVATE ${OpenCV_LIBS}) endif() @@ -294,9 +294,9 @@ add_executable(darknet ${CMAKE_CURRENT_LIST_DIR}/src/darknet.c ${sources} ${head 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(dark PUBLIC $ $ $ $) -target_include_directories(uselib PUBLIC $ $ $ $) +target_include_directories(darknet PUBLIC $ $ $ $) +target_include_directories(dark PUBLIC $ $ $ $) +target_include_directories(uselib PUBLIC $ $ $ $) if(CUDNN_FOUND) target_link_libraries(darknet PRIVATE CuDNN::CuDNN) From c2071db3ae2673ada4bc90efa0f7c32ee18a267b Mon Sep 17 00:00:00 2001 From: Stefano Sinigardi Date: Tue, 23 Apr 2019 18:49:51 +0200 Subject: [PATCH 11/21] fully recicle install location in target definition --- CMakeLists.txt | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 79a84e5f..0fa6adc7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,18 +33,6 @@ set(INSTALL_BIN_DIR "${CMAKE_CURRENT_LIST_DIR}" CACHE PATH "Path where exe set(INSTALL_LIB_DIR "lib" 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") -# Make relative paths absolute (needed later on) -foreach(p LIB BIN INCLUDE CMAKE) - set(var INSTALL_${p}_DIR) - if(NOT IS_ABSOLUTE "${${var}}") - set(${var} "${CMAKE_INSTALL_PREFIX}/${${var}}") - endif() -endforeach() - -configure_file( - "${CMAKE_CURRENT_LIST_DIR}/src/version.h.in" - "${CMAKE_CURRENT_LIST_DIR}/src/version.h" -) set(ENABLE_CUDA "TRUE" CACHE BOOL "Enable CUDA build") set(ENABLE_CUDNN "FALSE" CACHE BOOL "Enable CUDNN") @@ -221,6 +209,20 @@ else() endif() 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) + if(NOT IS_ABSOLUTE "${${var}}") + set(${var} "${CMAKE_INSTALL_PREFIX}/${${var}}") + endif() +endforeach() + +configure_file( + "${CMAKE_CURRENT_LIST_DIR}/src/version.h.in" + "${CMAKE_CURRENT_LIST_DIR}/src/version.h" +) + #look for all *.h files in src folder file(GLOB headers "${CMAKE_CURRENT_LIST_DIR}/src/*.h") #add also files in the include folder @@ -283,7 +285,7 @@ if(OpenCV_FOUND AND OpenCV_VERSION VERSION_GREATER "3.0" AND NOT SKIP_USELIB_TRA 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_include_directories(uselib_track PUBLIC $ $ $ $) target_link_libraries(uselib_track PRIVATE ${OpenCV_LIBS}) endif() @@ -294,9 +296,9 @@ add_executable(darknet ${CMAKE_CURRENT_LIST_DIR}/src/darknet.c ${sources} ${head 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(dark PUBLIC $ $ $ $) -target_include_directories(uselib PUBLIC $ $ $ $) +target_include_directories(darknet PUBLIC $ $ $ $) +target_include_directories(dark PUBLIC $ $ $ $) +target_include_directories(uselib PUBLIC $ $ $ $) if(CUDNN_FOUND) target_link_libraries(darknet PRIVATE CuDNN::CuDNN) From 21e6372a5b2f9202210a89597d5c6786a88c18d5 Mon Sep 17 00:00:00 2001 From: Stefano Sinigardi Date: Tue, 30 Apr 2019 11:10:52 +0200 Subject: [PATCH 12/21] [ci] allow vcpkg failures, export CC and CXX symbols, use stb from vcpkg when not testing integrated libs --- .travis.yml | 110 +++++++++++++++++++++++++++++---------------------- appveyor.yml | 3 +- 2 files changed, 64 insertions(+), 49 deletions(-) diff --git a/.travis.yml b/.travis.yml index 9ac9581c..8d1b2988 100644 --- a/.travis.yml +++ b/.travis.yml @@ -67,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 @@ -87,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 @@ -101,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 @@ -115,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 @@ -129,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 @@ -143,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 @@ -158,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 @@ -182,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 @@ -196,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 @@ -210,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 @@ -224,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 @@ -238,7 +247,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: gcc @@ -254,7 +263,7 @@ matrix: - additional_defines="" - USE_VCPKG=true - VCPKG_DEFINES="-DCMAKE_TOOLCHAIN_FILE=$HOME/vcpkg/scripts/buildsystems/vcpkg.cmake" - - MATRIX_EVAL="CC=gcc-8 && CXX=g++-8" + - MATRIX_EVAL="export CC=gcc-8 && export CXX=g++-8" - os: linux compiler: clang @@ -279,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 @@ -294,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 @@ -309,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 @@ -324,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 @@ -339,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 @@ -355,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 @@ -382,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 @@ -397,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 @@ -412,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 @@ -427,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 @@ -442,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 @@ -471,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 @@ -487,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 @@ -503,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 @@ -519,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 @@ -535,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 @@ -552,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 @@ -582,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 @@ -598,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 @@ -614,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 @@ -630,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 @@ -646,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 @@ -675,7 +684,7 @@ matrix: - additional_defines="" - CUDACXX=/usr/local/cuda-10.0/bin/nvcc - 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 @@ -692,7 +701,7 @@ matrix: - additional_defines="" - CUDACXX=/usr/local/cuda-10.0/bin/nvcc - 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 @@ -709,7 +718,7 @@ matrix: - additional_defines="" - CUDACXX=/usr/local/cuda-10.0/bin/nvcc - 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 @@ -726,7 +735,7 @@ matrix: - additional_defines="" - CUDACXX=/usr/local/cuda-10.0/bin/nvcc - 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 @@ -743,7 +752,7 @@ matrix: - additional_defines="" - CUDACXX=/usr/local/cuda-10.0/bin/nvcc - 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 @@ -761,7 +770,7 @@ matrix: - additional_defines="" - CUDACXX=/usr/local/cuda-10.0/bin/nvcc - 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 @@ -792,7 +801,7 @@ matrix: - additional_defines="" - CUDACXX=/usr/local/cuda-10.0/bin/nvcc - 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 @@ -809,7 +818,7 @@ matrix: - additional_defines="" - CUDACXX=/usr/local/cuda-10.0/bin/nvcc - 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 @@ -826,7 +835,7 @@ matrix: - additional_defines="" - CUDACXX=/usr/local/cuda-10.0/bin/nvcc - 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 @@ -843,7 +852,7 @@ matrix: - additional_defines="" - CUDACXX=/usr/local/cuda-10.0/bin/nvcc - 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 @@ -860,7 +869,7 @@ matrix: - additional_defines="" - CUDACXX=/usr/local/cuda-10.0/bin/nvcc - 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 @@ -879,7 +888,11 @@ matrix: - CUDACXX=/usr/local/cuda-10.0/bin/nvcc - CUDA_PATH=/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" + + #do not consider known failing builds for the whole build status + allow_failures: + - name: macOS - vcpkg before_install: - travis_retry eval "${MATRIX_EVAL}" @@ -895,8 +908,9 @@ install: - 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 ./vcpkg install opencv[ffmpeg,cuda] ; fi - - if [ "${USE_VCPKG}" = true ] && [[ -z "${CUDACXX}" ]] ; then travis_wait ./vcpkg install opencv[ffmpeg] ; fi + #- if [ "${USE_VCPKG}" = true ] && [[ ! -z "${CUDACXX}" ]] ; then travis_wait ./vcpkg install opencv[ffmpeg,cuda] ; fi + #- if [ "${USE_VCPKG}" = true ] && [[ -z "${CUDACXX}" ]] ; then travis_wait ./vcpkg install opencv[ffmpeg] ; fi + - if [ "${USE_VCPKG}" = true ] ; then travis_wait ./vcpkg install opencv[ffmpeg] ; fi - popd before_script: 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"' From 3a20020264842679629c46efed391518fcfb5096 Mon Sep 17 00:00:00 2001 From: Stefano Sinigardi Date: Tue, 30 Apr 2019 16:15:57 +0200 Subject: [PATCH 13/21] [ci] extend timeout for vcpkg, add all vcpkg configs to allowed failures --- .travis.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 8d1b2988..4a0b50fa 100644 --- a/.travis.yml +++ b/.travis.yml @@ -893,6 +893,8 @@ matrix: #do not consider known failing builds for the whole build status 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}" @@ -908,9 +910,8 @@ install: - 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 ./vcpkg install opencv[ffmpeg,cuda] ; fi - #- if [ "${USE_VCPKG}" = true ] && [[ -z "${CUDACXX}" ]] ; then travis_wait ./vcpkg install opencv[ffmpeg] ; fi - - if [ "${USE_VCPKG}" = true ] ; then travis_wait ./vcpkg install opencv[ffmpeg] ; fi + - if [ "${USE_VCPKG}" = true ] && [[ ! -z "${CUDACXX}" ]] ; then travis_wait 45 ./vcpkg install opencv[ffmpeg,cuda] ; fi + - if [ "${USE_VCPKG}" = true ] && [[ -z "${CUDACXX}" ]] ; then travis_wait 45 ./vcpkg install opencv[ffmpeg] ; fi - popd before_script: From 84ee1f42c6f9c2ffabaf3d3d5b1da1d185c4a972 Mon Sep 17 00:00:00 2001 From: Stefano Sinigardi Date: Tue, 30 Apr 2019 19:25:47 +0200 Subject: [PATCH 14/21] [travis] disable vcpkg's built opencv[cuda] also on cuda-enabled configs, since it causes internal compiler errors. Waiting for updates from vcpkg --- .travis.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4a0b50fa..8834e2af 100644 --- a/.travis.yml +++ b/.travis.yml @@ -890,11 +890,10 @@ matrix: - 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" - #do not consider known failing builds for the whole build status - allow_failures: - - name: macOS - vcpkg - - name: ubuntu 14.04 - gcc@8.0 - vcpkg - - name: ubuntu 14.04 - gcc@8.0 - CUDA 10 - vcpkg +# 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}" @@ -910,8 +909,9 @@ install: - 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] ; fi - - if [ "${USE_VCPKG}" = true ] && [[ -z "${CUDACXX}" ]] ; then travis_wait 45 ./vcpkg install opencv[ffmpeg] ; 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: From f27f7cc5d09af1b17bea655dee425b2bcd3f61aa Mon Sep 17 00:00:00 2001 From: Stefano Sinigardi Date: Mon, 13 May 2019 00:05:27 +0200 Subject: [PATCH 15/21] move towards using only modern cmake --- CMakeLists.txt | 32 +++++++++++++++++++------------- DarknetConfig.cmake.in | 1 - 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0fa6adc7..05b56e89 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -36,6 +36,7 @@ set(INSTALL_CMAKE_DIR "share/darknet" CACHE PATH "Path where cmak set(ENABLE_CUDA "TRUE" CACHE BOOL "Enable CUDA build") set(ENABLE_CUDNN "FALSE" CACHE BOOL "Enable CUDNN") +set(ENABLE_CUDNN_HALF "FALSE" CACHE BOOL "Enable CUDNN Half precision") set(ENABLE_OPENMP "TRUE" CACHE BOOL "Enable OpenMP") if(${CMAKE_VERSION} VERSION_LESS "3.8.0") set(ENABLE_CUDA "FALSE" CACHE BOOL "Enable CUDA build" FORCE) @@ -120,11 +121,9 @@ if(OpenCV_FOUND) 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}") @@ -135,10 +134,9 @@ if(ENABLE_CUDA) endif() find_package(CUDNN) if(CUDNN_FOUND) - add_definitions(-DCUDNN) set(ENABLE_CUDNN "TRUE" CACHE BOOL "Enable CUDNN" FORCE) if(CUDA_COMPUTE_MODEL VERSION_GREATER_EQUAL ${CUDA_COMPUTE_MODEL_70}) - add_definitions(-DCUDNN_HALF) + set(ENABLE_CUDNN_HALF "TRUE" CACHE BOOL "Enable CUDNN Half precision" FORCE) message(STATUS "Enabled CUDNN_HALF") endif() endif() @@ -202,9 +200,7 @@ 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}") - else() + if(NOT OPENMP_FOUND) set(ENABLE_OPENMP "FALSE" CACHE BOOL "Enable OpenMP" FORCE) endif() endif() @@ -283,10 +279,6 @@ 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) @@ -303,17 +295,25 @@ target_include_directories(uselib PUBLIC $ Date: Mon, 13 May 2019 17:23:02 +0200 Subject: [PATCH 16/21] move towards using only modern cmake - part 2 --- .gitignore | 1 + CMakeLists.txt | 188 ++++++++++++++++++++++++++----------------------- 2 files changed, 102 insertions(+), 87 deletions(-) diff --git a/.gitignore b/.gitignore index 142b185d..f5d9a42a 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ *.so *.exe *.dll +*.lib mnist/ data/ caffe/ diff --git a/CMakeLists.txt b/CMakeLists.txt index 05b56e89..3334bcfe 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,24 +30,28 @@ 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_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 "TRUE" CACHE BOOL "Enable CUDA build") +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") -set(ENABLE_OPENMP "TRUE" CACHE BOOL "Enable OpenMP") + if(${CMAKE_VERSION} VERSION_LESS "3.8.0") - set(ENABLE_CUDA "FALSE" CACHE BOOL "Enable CUDA build" FORCE) + set(ENABLE_CUDA "FALSE" CACHE BOOL "Enable CUDA support" 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) + 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) + endif() endif() endif() @@ -77,42 +81,53 @@ 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) +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(CMAKE_CXX_FLAGS "/wd4013 /wd4018 /wd4028 /wd4047 /wd4068 /wd4090 /wd4101 /wd4113 /wd4133 /wd4190 /wd4244 /wd4267 /wd4305 /wd4477 /wd4996 /wd4819 /fp:fast ${CMAKE_CXX_FLAGS}") + 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}) - add_definitions(-D_CRT_RAND_S) - add_definitions(-DNOMINMAX) - add_definitions(-D_USE_MATH_DEFINES) + string(REGEX REPLACE "/O2" "/Ox" CMAKE_C_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE}) 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 +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 "-Wno-deprecated -Wno-writable-strings ${CMAKE_CXX_FLAGS}") + 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(ENABLE_OPENCV "TRUE" CACHE BOOL "Enable OpenCV integration") -if(ENABLE_OPENCV) - find_package(OpenCV) -endif() -find_package(Stb REQUIRED) +string(REPLACE " " "," ADDITIONAL_CXX_FLAGS_COMMA_SEPARATED "${ADDITIONAL_CXX_FLAGS}") set(SKIP_USELIB_TRACK "FALSE" CACHE BOOL "Skip building uselib_track" FORCE) if(OpenCV_FOUND) @@ -124,13 +139,9 @@ if(OpenCV_FOUND) endif() if(ENABLE_CUDA) - 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}) + if(CUDA_COMPUTE_MODEL VERSION_GREATER_EQUAL ${CUDA_COMPUTE_MODEL_75} AND CUDA_VERSION VERSION_LESS_EQUAL "9.2") + message(STATUS "CUDA 10 is required for Compute Model 7.5 - Lowering settings to 7.2") + set(CUDA_COMPUTE_MODEL ${CUDA_COMPUTE_MODEL_72}) endif() find_package(CUDNN) if(CUDNN_FOUND) @@ -140,32 +151,33 @@ if(ENABLE_CUDA) message(STATUS "Enabled CUDNN_HALF") endif() endif() + set(CUDA_COMPUTECAPABILITY_FLAGS "-gencode arch=compute_${CUDA_COMPUTE_MODEL},code=[sm_${CUDA_COMPUTE_MODEL},compute_${CUDA_COMPUTE_MODEL}]") 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}") + set(CMAKE_CUDA_FLAGS "${CUDA_COMPUTECAPABILITY_FLAGS} -Wno-deprecated-declarations -Xcompiler=\"${ADDITIONAL_CXX_FLAGS_COMMA_SEPARATED},/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}") + set(CMAKE_CUDA_FLAGS "${CUDA_COMPUTECAPABILITY_FLAGS} -Wno-deprecated-declarations -Xcompiler=\"${ADDITIONAL_CXX_FLAGS_COMMA_SEPARATED},/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}") + set(CMAKE_CUDA_FLAGS "${CUDA_COMPUTECAPABILITY_FLAGS} -Wno-deprecated-declarations -Xcompiler=\"${ADDITIONAL_CXX_FLAGS_COMMA_SEPARATED},/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}") + set(CMAKE_CUDA_FLAGS "${CUDA_COMPUTECAPABILITY_FLAGS} -Wno-deprecated-declarations -Xcompiler=\"${ADDITIONAL_CXX_FLAGS_COMMA_SEPARATED},/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}") + set(CMAKE_CUDA_FLAGS "${CUDA_COMPUTECAPABILITY_FLAGS} --compiler-options \"${ADDITIONAL_CXX_FLAGS} -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}") + set(CMAKE_CUDA_FLAGS "${CUDA_COMPUTECAPABILITY_FLAGS} --compiler-options \"${ADDITIONAL_CXX_FLAGS} -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}") + set(CMAKE_CUDA_FLAGS "${CUDA_COMPUTECAPABILITY_FLAGS} --compiler-options \"${ADDITIONAL_CXX_FLAGS} -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}") + set(CMAKE_CUDA_FLAGS "${CUDA_COMPUTECAPABILITY_FLAGS} --compiler-options \"${ADDITIONAL_CXX_FLAGS} -fPIC -fopenmp -Ofast -DGPU \" ${CMAKE_CUDA_FLAGS}") endif() endif() endif() @@ -178,7 +190,6 @@ if(ENABLE_CUDA) 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") @@ -190,21 +201,6 @@ else() 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(NOT OPENMP_FOUND) - set(ENABLE_OPENMP "FALSE" CACHE BOOL "Enable OpenMP" FORCE) - endif() -endif() - set(DARKNET_INSTALL_INCLUDE_DIR ${INSTALL_INCLUDE_DIR}) # Make relative paths absolute (needed later on) foreach(p LIB BIN INCLUDE CMAKE) @@ -225,11 +221,13 @@ file(GLOB headers "${CMAKE_CURRENT_LIST_DIR}/src/*.h") 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 -) +#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 @@ -243,29 +241,19 @@ 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 - ) - - 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) +#set_source_files_properties(${sources} PROPERTIES LANGUAGE CXX) 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) @@ -275,23 +263,27 @@ endif() if(BUILD_SHARED_LIBS) target_compile_definitions(dark PRIVATE LIB_EXPORTS=1) endif() -set_target_properties(dark PROPERTIES LINKER_LANGUAGE CXX) +#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) 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(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(dark PRIVATE CuDNN::CuDNN) @@ -313,7 +305,9 @@ endif() if(OPENMP_FOUND) 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) @@ -326,6 +320,9 @@ if(MSVC) target_link_libraries(darknet 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) @@ -333,7 +330,11 @@ 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) @@ -344,13 +345,26 @@ if(ENABLE_CUDA) target_compile_definitions(dark PUBLIC -DGPU) endif() +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 dark) target_compile_definitions(uselib_track PRIVATE TRACK_OPTFLOW=1) - set_target_properties(uselib_track PROPERTIES LINKER_LANGUAGE CXX) + 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(dark PROPERTIES PUBLIC_HEADER "${exported_headers};${CMAKE_CURRENT_LIST_DIR}/include/yolo_v2_class.hpp") From d21dc00c6eef8fff2f048d153b8bad4e15e8005d Mon Sep 17 00:00:00 2001 From: Stefano Sinigardi Date: Mon, 13 May 2019 18:51:01 +0200 Subject: [PATCH 17/21] move towards using only modern cmake - part 3 --- CMakeLists.txt | 83 +++++++++++++----------------------------- DarknetConfig.cmake.in | 11 +----- 2 files changed, 27 insertions(+), 67 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3334bcfe..8d0384b3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -51,34 +51,16 @@ else() 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 "Auto") + 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() -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") endif() @@ -127,8 +109,6 @@ if(CMAKE_COMPILER_IS_GNUCC OR "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -ffp-contract=fast -mavx -mavx2 -msse3 -msse4.1 -msse4.2 -msse4a") endif() -string(REPLACE " " "," ADDITIONAL_CXX_FLAGS_COMMA_SEPARATED "${ADDITIONAL_CXX_FLAGS}") - set(SKIP_USELIB_TRACK "FALSE" CACHE BOOL "Skip building uselib_track" FORCE) if(OpenCV_FOUND) if(ENABLE_CUDA AND NOT OpenCV_CUDA_VERSION) @@ -139,48 +119,37 @@ if(OpenCV_FOUND) endif() if(ENABLE_CUDA) - if(CUDA_COMPUTE_MODEL VERSION_GREATER_EQUAL ${CUDA_COMPUTE_MODEL_75} AND CUDA_VERSION VERSION_LESS_EQUAL "9.2") - message(STATUS "CUDA 10 is required for Compute Model 7.5 - Lowering settings to 7.2") - set(CUDA_COMPUTE_MODEL ${CUDA_COMPUTE_MODEL_72}) - endif() find_package(CUDNN) if(CUDNN_FOUND) set(ENABLE_CUDNN "TRUE" CACHE BOOL "Enable CUDNN" FORCE) - if(CUDA_COMPUTE_MODEL VERSION_GREATER_EQUAL ${CUDA_COMPUTE_MODEL_70}) - set(ENABLE_CUDNN_HALF "TRUE" CACHE BOOL "Enable CUDNN Half precision" FORCE) - message(STATUS "Enabled CUDNN_HALF") - endif() endif() - set(CUDA_COMPUTECAPABILITY_FLAGS "-gencode arch=compute_${CUDA_COMPUTE_MODEL},code=[sm_${CUDA_COMPUTE_MODEL},compute_${CUDA_COMPUTE_MODEL}]") +endif() + +if(ENABLE_CUDA) if (MSVC) + set(ADDITIONAL_CXX_FLAGS "${ADDITIONAL_CXX_FLAGS} /DGPU") if(CUDNN_FOUND) - if(OpenCV_FOUND) - set(CMAKE_CUDA_FLAGS "${CUDA_COMPUTECAPABILITY_FLAGS} -Wno-deprecated-declarations -Xcompiler=\"${ADDITIONAL_CXX_FLAGS_COMMA_SEPARATED},/DGPU,/DCUDNN,/DOPENCV\" ${CMAKE_CUDA_FLAGS}") - else() - set(CMAKE_CUDA_FLAGS "${CUDA_COMPUTECAPABILITY_FLAGS} -Wno-deprecated-declarations -Xcompiler=\"${ADDITIONAL_CXX_FLAGS_COMMA_SEPARATED},/DGPU,/DCUDNN\" ${CMAKE_CUDA_FLAGS}") - endif() - else() - if(OpenCV_FOUND) - set(CMAKE_CUDA_FLAGS "${CUDA_COMPUTECAPABILITY_FLAGS} -Wno-deprecated-declarations -Xcompiler=\"${ADDITIONAL_CXX_FLAGS_COMMA_SEPARATED},/DGPU,/DOPENCV\" ${CMAKE_CUDA_FLAGS}") - else() - set(CMAKE_CUDA_FLAGS "${CUDA_COMPUTECAPABILITY_FLAGS} -Wno-deprecated-declarations -Xcompiler=\"${ADDITIONAL_CXX_FLAGS_COMMA_SEPARATED},/DGPU\" ${CMAKE_CUDA_FLAGS}") - endif() + 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) - if(OpenCV_FOUND) - set(CMAKE_CUDA_FLAGS "${CUDA_COMPUTECAPABILITY_FLAGS} --compiler-options \"${ADDITIONAL_CXX_FLAGS} -fPIC -fopenmp -Ofast -DOPENCV -DGPU -DCUDNN \" ${CMAKE_CUDA_FLAGS}") - else() - set(CMAKE_CUDA_FLAGS "${CUDA_COMPUTECAPABILITY_FLAGS} --compiler-options \"${ADDITIONAL_CXX_FLAGS} -fPIC -fopenmp -Ofast -DGPU -DCUDNN \" ${CMAKE_CUDA_FLAGS}") - endif() - else() - if(OpenCV_FOUND) - set(CMAKE_CUDA_FLAGS "${CUDA_COMPUTECAPABILITY_FLAGS} --compiler-options \"${ADDITIONAL_CXX_FLAGS} -fPIC -fopenmp -Ofast -DOPENCV -DGPU \" ${CMAKE_CUDA_FLAGS}") - else() - set(CMAKE_CUDA_FLAGS "${CUDA_COMPUTECAPABILITY_FLAGS} --compiler-options \"${ADDITIONAL_CXX_FLAGS} -fPIC -fopenmp -Ofast -DGPU \" ${CMAKE_CUDA_FLAGS}") - endif() + 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") diff --git a/DarknetConfig.cmake.in b/DarknetConfig.cmake.in index dbd22112..d0f47132 100644 --- a/DarknetConfig.cmake.in +++ b/DarknetConfig.cmake.in @@ -7,30 +7,21 @@ include(CMakeFindDependencyMacro) if(@ENABLE_OPENCV@) find_dependency(OpenCV) - add_definitions(-DOPENCV) endif() find_dependency(Stb) if(@ENABLE_CUDA@) - add_definitions(-DGPU) if(@ENABLE_CUDNN@) find_dependency(CUDNN) - 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() endif() set(CMAKE_THREAD_PREFER_PTHREAD ON) find_dependency(Threads) -if(MSVC) +if(@MSVC@) find_dependency(PThreads_windows) - #add_definitions(-D_CRT_SECURE_NO_WARNINGS) - #set(CMAKE_CXX_FLAGS "/wd4018 /wd4244 /wd4267 /wd4305 ${CMAKE_CXX_FLAGS}") endif() if(@ENABLE_OPENMP@) From 920b29f15feb0ac533982495a074da718dc2dfe7 Mon Sep 17 00:00:00 2001 From: Stefano Sinigardi Date: Mon, 13 May 2019 22:56:03 +0200 Subject: [PATCH 18/21] fixes for ci and included files --- .travis.yml | 27 +++++++++++++++++++++++++++ CMakeLists.txt | 2 ++ build.ps1 | 19 ------------------- build.sh | 17 ----------------- include/darknet.h | 8 ++++---- src/activation_kernels.cu | 6 +++--- src/avgpool_layer_kernels.cu | 6 +++--- src/blas_kernels.cu | 8 ++++---- src/col2im_kernels.cu | 6 +++--- src/convolutional_kernels.cu | 6 +++--- src/crop_layer_kernels.cu | 6 +++--- src/deconvolutional_kernels.cu | 6 +++--- src/dropout_layer_kernels.cu | 6 +++--- src/maxpool_layer_kernels.cu | 6 +++--- 14 files changed, 61 insertions(+), 68 deletions(-) diff --git a/.travis.yml b/.travis.yml index 8834e2af..93a4f6bd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -668,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" @@ -683,6 +685,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="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" @@ -700,6 +704,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="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" @@ -717,6 +723,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="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" @@ -734,6 +742,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="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" @@ -751,6 +761,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="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" @@ -769,6 +781,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="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" @@ -783,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" @@ -800,6 +816,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="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" @@ -817,6 +835,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="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" @@ -834,6 +854,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="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" @@ -851,6 +873,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="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" @@ -868,6 +892,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="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" @@ -887,6 +913,7 @@ matrix: - 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" diff --git a/CMakeLists.txt b/CMakeLists.txt index 8d0384b3..9ebd7a36 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -307,6 +307,8 @@ if(ENABLE_ZED_CAMERA) endif() if(ENABLE_CUDA) + target_include_directories(darknet PRIVATE $ +#include +#include #ifdef CUDNN -#include "cudnn.h" +#include #endif #endif diff --git a/src/activation_kernels.cu b/src/activation_kernels.cu index 6c9445a6..6bd86dca 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 2070bc1f..41156693 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" @@ -1021,4 +1021,4 @@ extern "C" int is_nan_or_inf(float *input, size_t size) CHECK_CUDA(cudaFreeHost(pinned_return)); return ret_val; -} \ 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 cfa4fe7e..892ccc93 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" From d853658fcfe079d298b6dcef744082398cfd5f30 Mon Sep 17 00:00:00 2001 From: Stefano Sinigardi Date: Tue, 14 May 2019 09:46:18 +0200 Subject: [PATCH 19/21] fix symbols usage --- DarknetConfig.cmake.in | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/DarknetConfig.cmake.in b/DarknetConfig.cmake.in index d0f47132..169cfa9b 100644 --- a/DarknetConfig.cmake.in +++ b/DarknetConfig.cmake.in @@ -5,14 +5,14 @@ list(APPEND CMAKE_MODULE_PATH "${Darknet_CMAKE_DIR}") include(CMakeFindDependencyMacro) -if(@ENABLE_OPENCV@) +if(@OpenCV_FOUND@) find_dependency(OpenCV) endif() find_dependency(Stb) if(@ENABLE_CUDA@) - if(@ENABLE_CUDNN@) + if(@CUDNN_FOUND@) find_dependency(CUDNN) endif() endif() @@ -24,7 +24,7 @@ if(@MSVC@) find_dependency(PThreads_windows) endif() -if(@ENABLE_OPENMP@) +if(@OPENMP_FOUND@) find_dependency(OpenMP) endif() From 5e242dfe4d7cda92a236e65850923ee8ed027d82 Mon Sep 17 00:00:00 2001 From: Stefano Sinigardi Date: Tue, 14 May 2019 11:41:25 +0200 Subject: [PATCH 20/21] remove deprecated json file --- CMakeLists.txt | 4 +- CMakeSettings.json | 212 --------------------------------------------- 2 files changed, 2 insertions(+), 214 deletions(-) delete mode 100644 CMakeSettings.json diff --git a/CMakeLists.txt b/CMakeLists.txt index 9ebd7a36..319d9fe9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -307,8 +307,8 @@ if(ENABLE_ZED_CAMERA) endif() if(ENABLE_CUDA) - target_include_directories(darknet PRIVATE $ Date: Mon, 20 May 2019 15:17:14 +0200 Subject: [PATCH 21/21] [cmake+cuda] improve friendliness of architecture selection --- CMakeLists.txt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 319d9fe9..e41a5f77 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -38,20 +38,22 @@ 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.8.0") +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.8.0+") + 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 "Auto") + 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)