Merge pull request #2476 from cenit/dev/cenit/CI

[CI] add scripts for travis and appveyor
pull/2514/head
Alexey 6 years ago committed by GitHub
commit aa24da9fba
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 426
      .travis.yml
  2. 47
      CMakeLists.txt
  3. 67
      appveyor.yml
  4. 5
      src/im2col.h
  5. 3
      src/im2col_kernels.cu

@ -0,0 +1,426 @@
language: cpp
matrix:
include:
- os: osx
compiler: gcc
name: macOS - gcc@5 - opencv@2
env:
- MATRIX_EVAL="brew install gcc@5 opencv@2 && CC=gcc-5 && CXX=g++-5 && OpenCV_DIR=/usr/local/opt/opencv@2"
- os: osx
compiler: gcc
name: macOS - gcc@5 - opencv@3
env:
- MATRIX_EVAL="brew install gcc@5 opencv@3 && CC=gcc-5 && CXX=g++-5 && OpenCV_DIR=/usr/local/opt/opencv@3"
- os: osx
compiler: gcc
name: macOS - native gcc (llvm backend) - opencv@2
env:
- MATRIX_EVAL="brew install opencv@2 && OpenCV_DIR=/usr/local/opt/opencv@2"
- os: osx
compiler: gcc
name: macOS - native gcc (llvm backend) - opencv@3
env:
- MATRIX_EVAL="brew install opencv@3 && OpenCV_DIR=/usr/local/opt/opencv@3"
- os: osx
compiler: clang
name: macOS - native clang - opencv@2
env:
- MATRIX_EVAL="brew install opencv@2 && OpenCV_DIR=/usr/local/opt/opencv@2"
- os: osx
compiler: clang
name: macOS - native clang - opencv@3
env:
- MATRIX_EVAL="brew install opencv@3 && OpenCV_DIR=/usr/local/opt/opencv@3"
- os: linux
compiler: clang
name: ubuntu 14.04 - native clang
addons:
apt:
update: true
packages:
- libopencv-dev
env:
- MATRIX_EVAL=""
- os: linux
compiler: clang
name: ubuntu 14.04 - clang@3.6
addons:
apt:
update: true
packages:
- libopencv-dev
- clang-3.6
env:
- MATRIX_EVAL="CC=clang-3.6 && CXX=clang++-3.6"
- os: linux
compiler: clang
name: ubuntu 14.04 - clang@3.8
addons:
apt:
update: true
sources:
- llvm-toolchain-precise-3.8
packages:
- libopencv-dev
- clang-3.8
env:
- MATRIX_EVAL="CC=clang-3.8 && CXX=clang++-3.8"
- os: linux
compiler: clang
name: ubuntu 14.04 - clang@3.9
addons:
apt:
update: true
sources:
- llvm-toolchain-trusty-3.9
packages:
- libopencv-dev
- clang-3.9
env:
- MATRIX_EVAL="CC=clang-3.9 && CXX=clang++-3.9"
- os: linux
compiler: clang
name: ubuntu 14.04 - clang@4.0
addons:
apt:
update: true
sources:
- llvm-toolchain-trusty-4.0
packages:
- libopencv-dev
- clang-4.0
env:
- MATRIX_EVAL="CC=clang-4.0 && CXX=clang++-4.0"
- os: linux
compiler: clang
name: ubuntu 14.04 - clang@5.0
addons:
apt:
update: true
sources:
- llvm-toolchain-trusty-5.0
packages:
- libopencv-dev
- clang-5.0
env:
- MATRIX_EVAL="CC=clang-5.0 && CXX=clang++-5.0"
- os: linux
compiler: clang
name: ubuntu 14.04 - clang@6.0
addons:
apt:
update: true
sources:
- llvm-toolchain-trusty-6.0
- ubuntu-toolchain-r-test
packages:
- libopencv-dev
- clang-6.0
env:
- MATRIX_EVAL="CC=clang-6.0 && CXX=clang++-6.0"
- os: linux
compiler: gcc
name: ubuntu 14.04 - native gcc
addons:
apt:
update: true
packages:
- libopencv-dev
env:
- MATRIX_EVAL=""
- os: linux
compiler: gcc
name: ubuntu 14.04 - gcc@4.9
addons:
apt:
update: true
sources:
- ubuntu-toolchain-r-test
packages:
- libopencv-dev
- g++-4.9
env:
- MATRIX_EVAL="CC=gcc-4.9 && CXX=g++-4.9"
- os: linux
compiler: gcc
name: ubuntu 14.04 - gcc@5.0
addons:
apt:
update: true
sources:
- ubuntu-toolchain-r-test
packages:
- libopencv-dev
- g++-5
env:
- MATRIX_EVAL="CC=gcc-5 && CXX=g++-5"
- os: linux
compiler: gcc
name: ubuntu 14.04 - gcc@6.0
addons:
apt:
update: true
sources:
- ubuntu-toolchain-r-test
packages:
- g++-6
- libopencv-dev
env:
- MATRIX_EVAL="CC=gcc-6 && CXX=g++-6"
- os: linux
compiler: gcc
name: ubuntu 14.04 - gcc@7.0
addons:
apt:
update: true
sources:
- ubuntu-toolchain-r-test
packages:
- libopencv-dev
- g++-7
env:
- MATRIX_EVAL="CC=gcc-7 && CXX=g++-7"
- os: linux
compiler: gcc
name: ubuntu 14.04 - gcc@8.0
addons:
apt:
update: true
sources:
- ubuntu-toolchain-r-test
packages:
- libopencv-dev
- g++-8
env:
- MATRIX_EVAL="CC=gcc-8 && CXX=g++-8"
- os: linux
compiler: clang
name: ubuntu 14.04 - native clang - CUDA 10
addons:
apt:
update: true
packages:
- libopencv-dev
env:
- CUDACXX=/usr/local/cuda-10.0/bin/nvcc
- MATRIX_EVAL="wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/7fa2af80.pub && sudo dpkg -i cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1404/x86_64/nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo dpkg -i nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo apt-get -y update && sudo apt-get install -y --no-install-recommends cuda-compiler-10-0 cuda-cudart-dev-10-0 cuda-cublas-dev-10-0 cuda-curand-dev-10-0 && sudo apt-get install -y --no-install-recommends libcudnn7-dev"
- os: linux
compiler: clang
name: ubuntu 14.04 - clang@3.6 - CUDA 10
addons:
apt:
update: true
packages:
- libopencv-dev
- clang-3.6
env:
- CUDACXX=/usr/local/cuda-10.0/bin/nvcc
- MATRIX_EVAL="CC=clang-3.6 && CXX=clang++-3.6 && wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/7fa2af80.pub && sudo dpkg -i cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1404/x86_64/nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo dpkg -i nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo apt-get -y update && sudo apt-get install -y --no-install-recommends cuda-compiler-10-0 cuda-cudart-dev-10-0 cuda-cublas-dev-10-0 cuda-curand-dev-10-0 && sudo apt-get install -y --no-install-recommends libcudnn7-dev"
- os: linux
compiler: clang
name: ubuntu 14.04 - clang@3.8 - CUDA 10
addons:
apt:
update: true
sources:
- llvm-toolchain-precise-3.8
packages:
- libopencv-dev
- clang-3.8
env:
- CUDACXX=/usr/local/cuda-10.0/bin/nvcc
- MATRIX_EVAL="CC=clang-3.8 && CXX=clang++-3.8 && wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/7fa2af80.pub && sudo dpkg -i cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1404/x86_64/nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo dpkg -i nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo apt-get -y update && sudo apt-get install -y --no-install-recommends cuda-compiler-10-0 cuda-cudart-dev-10-0 cuda-cublas-dev-10-0 cuda-curand-dev-10-0 && sudo apt-get install -y --no-install-recommends libcudnn7-dev"
- os: linux
compiler: clang
name: ubuntu 14.04 - clang@3.9 - CUDA 10
addons:
apt:
update: true
sources:
- llvm-toolchain-trusty-3.9
packages:
- libopencv-dev
- clang-3.9
env:
- CUDACXX=/usr/local/cuda-10.0/bin/nvcc
- MATRIX_EVAL="CC=clang-3.9 && CXX=clang++-3.9 && wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/7fa2af80.pub && sudo dpkg -i cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1404/x86_64/nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo dpkg -i nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo apt-get -y update && sudo apt-get install -y --no-install-recommends cuda-compiler-10-0 cuda-cudart-dev-10-0 cuda-cublas-dev-10-0 cuda-curand-dev-10-0 && sudo apt-get install -y --no-install-recommends libcudnn7-dev"
- os: linux
compiler: clang
name: ubuntu 14.04 - clang@4.0 - CUDA 10
addons:
apt:
update: true
sources:
- llvm-toolchain-trusty-4.0
packages:
- libopencv-dev
- clang-4.0
env:
- CUDACXX=/usr/local/cuda-10.0/bin/nvcc
- MATRIX_EVAL="CC=clang-4.0 && CXX=clang++-4.0 && wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/7fa2af80.pub && sudo dpkg -i cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1404/x86_64/nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo dpkg -i nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo apt-get -y update && sudo apt-get install -y --no-install-recommends cuda-compiler-10-0 cuda-cudart-dev-10-0 cuda-cublas-dev-10-0 cuda-curand-dev-10-0 && sudo apt-get install -y --no-install-recommends libcudnn7-dev"
- os: linux
compiler: clang
name: ubuntu 14.04 - clang@5.0 - CUDA 10
addons:
apt:
update: true
sources:
- llvm-toolchain-trusty-5.0
packages:
- libopencv-dev
- clang-5.0
env:
- CUDACXX=/usr/local/cuda-10.0/bin/nvcc
- MATRIX_EVAL="CC=clang-5.0 && CXX=clang++-5.0 && wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/7fa2af80.pub && sudo dpkg -i cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1404/x86_64/nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo dpkg -i nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo apt-get -y update && sudo apt-get install -y --no-install-recommends cuda-compiler-10-0 cuda-cudart-dev-10-0 cuda-cublas-dev-10-0 cuda-curand-dev-10-0 && sudo apt-get install -y --no-install-recommends libcudnn7-dev"
- os: linux
compiler: clang
name: ubuntu 14.04 - clang@6.0 - CUDA 10
addons:
apt:
update: true
sources:
- llvm-toolchain-trusty-6.0
- ubuntu-toolchain-r-test
packages:
- libopencv-dev
- clang-6.0
env:
- CUDACXX=/usr/local/cuda-10.0/bin/nvcc
- MATRIX_EVAL="CC=clang-6.0 && CXX=clang++-6.0 && wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/7fa2af80.pub && sudo dpkg -i cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1404/x86_64/nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo dpkg -i nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo apt-get -y update && sudo apt-get install -y --no-install-recommends cuda-compiler-10-0 cuda-cudart-dev-10-0 cuda-cublas-dev-10-0 cuda-curand-dev-10-0 && sudo apt-get install -y --no-install-recommends libcudnn7-dev"
- os: linux
compiler: gcc
name: ubuntu 14.04 - native gcc - CUDA 10
addons:
apt:
update: true
packages:
- libopencv-dev
env:
- CUDACXX=/usr/local/cuda-10.0/bin/nvcc
- MATRIX_EVAL="wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/7fa2af80.pub && sudo dpkg -i cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1404/x86_64/nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo dpkg -i nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo apt-get -y update && sudo apt-get install -y --no-install-recommends cuda-compiler-10-0 cuda-cudart-dev-10-0 cuda-cublas-dev-10-0 cuda-curand-dev-10-0 && sudo apt-get install -y --no-install-recommends libcudnn7-dev"
- os: linux
compiler: gcc
name: ubuntu 14.04 - gcc@4.9 - CUDA 10
addons:
apt:
update: true
sources:
- ubuntu-toolchain-r-test
packages:
- libopencv-dev
- g++-4.9
env:
- CUDACXX=/usr/local/cuda-10.0/bin/nvcc
- MATRIX_EVAL="CC=gcc-4.9 && CXX=g++-4.9 && wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/7fa2af80.pub && sudo dpkg -i cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1404/x86_64/nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo dpkg -i nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo apt-get -y update && sudo apt-get install -y --no-install-recommends cuda-compiler-10-0 cuda-cudart-dev-10-0 cuda-cublas-dev-10-0 cuda-curand-dev-10-0 && sudo apt-get install -y --no-install-recommends libcudnn7-dev"
- os: linux
compiler: gcc
name: ubuntu 14.04 - gcc@5.0 - CUDA 10
addons:
apt:
update: true
sources:
- ubuntu-toolchain-r-test
packages:
- libopencv-dev
- g++-5
env:
- CUDACXX=/usr/local/cuda-10.0/bin/nvcc
- MATRIX_EVAL="CC=gcc-5 && CXX=g++-5 && wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/7fa2af80.pub && sudo dpkg -i cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1404/x86_64/nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo dpkg -i nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo apt-get -y update && sudo apt-get install -y --no-install-recommends cuda-compiler-10-0 cuda-cudart-dev-10-0 cuda-cublas-dev-10-0 cuda-curand-dev-10-0 && sudo apt-get install -y --no-install-recommends libcudnn7-dev"
- os: linux
compiler: gcc
name: ubuntu 14.04 - gcc@6.0 - CUDA 10
addons:
apt:
update: true
sources:
- ubuntu-toolchain-r-test
packages:
- g++-6
- libopencv-dev
env:
- CUDACXX=/usr/local/cuda-10.0/bin/nvcc
- MATRIX_EVAL="CC=gcc-6 && CXX=g++-6 && wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/7fa2af80.pub && sudo dpkg -i cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1404/x86_64/nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo dpkg -i nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo apt-get -y update && sudo apt-get install -y --no-install-recommends cuda-compiler-10-0 cuda-cudart-dev-10-0 cuda-cublas-dev-10-0 cuda-curand-dev-10-0 && sudo apt-get install -y --no-install-recommends libcudnn7-dev"
- os: linux
compiler: gcc
name: ubuntu 14.04 - gcc@7.0 - CUDA 10
addons:
apt:
update: true
sources:
- ubuntu-toolchain-r-test
packages:
- libopencv-dev
- g++-7
env:
- CUDACXX=/usr/local/cuda-10.0/bin/nvcc
- MATRIX_EVAL="CC=gcc-7 && CXX=g++-7 && wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/7fa2af80.pub && sudo dpkg -i cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1404/x86_64/nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo dpkg -i nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo apt-get -y update && sudo apt-get install -y --no-install-recommends cuda-compiler-10-0 cuda-cudart-dev-10-0 cuda-cublas-dev-10-0 cuda-curand-dev-10-0 && sudo apt-get install -y --no-install-recommends libcudnn7-dev"
- os: linux
compiler: gcc
name: ubuntu 14.04 - gcc@8.0 - CUDA 10
addons:
apt:
update: true
sources:
- ubuntu-toolchain-r-test
packages:
- libopencv-dev
- g++-8
env:
- CUDACXX=/usr/local/cuda-10.0/bin/nvcc
- MATRIX_EVAL="CC=gcc-8 && CXX=g++-8 && wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/7fa2af80.pub && sudo dpkg -i cuda-repo-ubuntu1404_10.0.130-1_amd64.deb && wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1404/x86_64/nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo dpkg -i nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb && sudo apt-get -y update && sudo apt-get install -y --no-install-recommends cuda-compiler-10-0 cuda-cudart-dev-10-0 cuda-cublas-dev-10-0 cuda-curand-dev-10-0 && sudo apt-get install -y --no-install-recommends libcudnn7-dev"
before_install:
- travis_retry eval "${MATRIX_EVAL}"
install:
# CMake upgrade on Linux
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then wget --no-check-certificate https://github.com/Kitware/CMake/releases/download/v3.13.4/cmake-3.13.4-Linux-x86_64.tar.gz ;fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then tar -xzf cmake-3.13.4-Linux-x86_64.tar.gz ;fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then export PATH=$PWD/cmake-3.13.4-Linux-x86_64/bin:$PATH ;fi
before_script:
- mkdir build_debug
- cd build_debug
- cmake .. -DCMAKE_BUILD_TYPE="Debug"
- cd ..
- mkdir build_release
- cd build_release
- cmake .. -DCMAKE_BUILD_TYPE="Release"
- cd ..
script:
- cd build_debug && cmake --build . --target install && cd ..
- cd build_release && cmake --build . --target install && cd ..

@ -1,6 +1,6 @@
# To use your libs, launch cmake with -DUSE_INTEGRATED_LIBS:BOOL=FALSE # To use your libs, launch cmake with -DUSE_INTEGRATED_LIBS:BOOL=FALSE
cmake_minimum_required(VERSION 3.8 FATAL_ERROR) cmake_minimum_required(VERSION 3.4)
#set(CMAKE_VERBOSE_MAKEFILE 1) #set(CMAKE_VERBOSE_MAKEFILE 1)
@ -19,20 +19,25 @@ endif()
enable_language(C) enable_language(C)
enable_language(CXX) enable_language(CXX)
set(ENABLE_CUDA "TRUE" CACHE BOOL "Enable CUDA build") set(CMAKE_CXX_STANDARD 11)
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake/Modules/" ${CMAKE_MODULE_PATH})
include_directories(${CMAKE_CURRENT_LIST_DIR}/include)
include_directories(${CMAKE_CURRENT_LIST_DIR}/src)
set(SKIP_USELIB_TRACK "FALSE" CACHE BOOL "Skip building uselib_track" FORCE)
set(ENABLE_CUDA "TRUE" CACHE BOOL "Enable CUDA build")
if(${CMAKE_VERSION} VERSION_LESS "3.8.0")
set(ENABLE_CUDA "FALSE" CACHE BOOL "Enable CUDA build" FORCE)
message(WARNING "To build with CUDA support you need CMake 3.8.0+")
else()
include(CheckLanguage) include(CheckLanguage)
check_language(CUDA) check_language(CUDA)
if(CMAKE_CUDA_COMPILER) if(CMAKE_CUDA_COMPILER)
enable_language(CUDA) enable_language(CUDA)
else() else()
set(ENABLE_CUDA "FALSE" CACHE BOOL "Enable CUDA build") set(ENABLE_CUDA "FALSE" CACHE BOOL "Enable CUDA build" FORCE)
endif()
endif() endif()
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake/Modules/" ${CMAKE_MODULE_PATH})
include_directories(${CMAKE_CURRENT_LIST_DIR}/include)
include_directories(${CMAKE_CURRENT_LIST_DIR}/src)
set(CUDA_COMPUTE_MODEL_75 "75") #Compute capability for Tesla T4, RTX 2080 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_72 "72") #Compute capability for Jetson Xavier
@ -71,9 +76,7 @@ set(CMAKE_INSTALL_RPATH "${CMAKE_SOURCE_DIR}")
add_definitions(-DUSE_CMAKE_LIBS) add_definitions(-DUSE_CMAKE_LIBS)
if(MSVC) if(MSVC)
set(CMAKE_C_FLAGS "/wd4013 /wd4018 /wd4028 /wd4047 /wd4068 /wd4090 /wd4101 /wd4113 /wd4133 /wd4190 /wd4244 /wd4267 /wd4305 /wd4477 /wd4996 /fp:fast ${CMAKE_C_FLAGS}")
set(CMAKE_CXX_FLAGS "/wd4013 /wd4018 /wd4028 /wd4047 /wd4068 /wd4090 /wd4101 /wd4113 /wd4133 /wd4190 /wd4244 /wd4267 /wd4305 /wd4477 /wd4996 /fp:fast ${CMAKE_CXX_FLAGS}") set(CMAKE_CXX_FLAGS "/wd4013 /wd4018 /wd4028 /wd4047 /wd4068 /wd4090 /wd4101 /wd4113 /wd4133 /wd4190 /wd4244 /wd4267 /wd4305 /wd4477 /wd4996 /fp:fast ${CMAKE_CXX_FLAGS}")
string(REGEX REPLACE "/O2" "/Ox" CMAKE_C_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE})
string(REGEX REPLACE "/O2" "/Ox" CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE}) string(REGEX REPLACE "/O2" "/Ox" CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE})
add_definitions(-D_CRT_RAND_S) add_definitions(-D_CRT_RAND_S)
add_definitions(-DNOMINMAX) add_definitions(-DNOMINMAX)
@ -81,21 +84,15 @@ if(MSVC)
endif() endif()
if(CMAKE_COMPILER_IS_GNUCC) if(CMAKE_COMPILER_IS_GNUCC)
set(CMAKE_C_FLAGS "-Wno-unused-result -Wno-discarded-qualifiers -Wno-incompatible-pointer-types ${CMAKE_C_FLAGS}")
set(CMAKE_CXX_FLAGS "-Wno-unused-result -Wno-write-strings ${CMAKE_CXX_FLAGS}") set(CMAKE_CXX_FLAGS "-Wno-unused-result -Wno-write-strings ${CMAKE_CXX_FLAGS}")
string(REGEX REPLACE "-O0" "-Og" CMAKE_C_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG})
string(REGEX REPLACE "-O0" "-Og" CMAKE_CXX_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG}) string(REGEX REPLACE "-O0" "-Og" CMAKE_CXX_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG})
string(REGEX REPLACE "-O3" "-Ofast" CMAKE_C_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE})
string(REGEX REPLACE "-O3" "-Ofast" CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE}) string(REGEX REPLACE "-O3" "-Ofast" CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE})
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -ffp-contract=fast -mavx -mavx2 -msse3 -msse4.1 -msse4.2 -msse4a")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -ffp-contract=fast -mavx -mavx2 -msse3 -msse4.1 -msse4.2 -msse4a") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -ffp-contract=fast -mavx -mavx2 -msse3 -msse4.1 -msse4.2 -msse4a")
endif() endif()
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
set(CMAKE_CXX_FLAGS "-Wno-deprecated -Wno-writable-strings ${CMAKE_CXX_FLAGS}") set(CMAKE_CXX_FLAGS "-Wno-deprecated -Wno-writable-strings ${CMAKE_CXX_FLAGS}")
string(REGEX REPLACE "-O0" "-Og" CMAKE_C_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG})
string(REGEX REPLACE "-O0" "-Og" CMAKE_CXX_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG}) string(REGEX REPLACE "-O0" "-Og" CMAKE_CXX_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG})
string(REGEX REPLACE "-O3" "-Ofast" CMAKE_C_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE})
string(REGEX REPLACE "-O3" "-Ofast" CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE}) string(REGEX REPLACE "-O3" "-Ofast" CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE})
endif() endif()
@ -106,6 +103,10 @@ else()
endif() endif()
if(OpenCV_FOUND) if(OpenCV_FOUND)
if(ENABLE_CUDA AND NOT OpenCV_CUDA_VERSION)
set(SKIP_USELIB_TRACK "TRUE" CACHE BOOL "Skip building uselib_track" FORCE)
message(WARNING "The build of OpenCV does not have CUDA support, so some tools have been disabled! Please rebuild OpenCV with CUDA support to build them!")
endif()
add_definitions(-DOPENCV) add_definitions(-DOPENCV)
include_directories(${OpenCV_INCLUDE_DIRS}) include_directories(${OpenCV_INCLUDE_DIRS})
endif() endif()
@ -114,6 +115,7 @@ if(ENABLE_CUDA)
add_definitions(-DGPU) add_definitions(-DGPU)
if(NOT WIN32) if(NOT WIN32)
include_directories("${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES}") include_directories("${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES}")
link_directories("${CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES}")
endif() endif()
if(CUDA_COMPUTE_MODEL VERSION_GREATER_EQUAL ${CUDA_COMPUTE_MODEL_75} AND CMAKE_CUDA_COMPILER_VERSION VERSION_LESS_EQUAL 9) 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") message(STATUS "CUDA 10 is required for Compute Model 7.5 - Lowering settings to 7.0")
@ -166,11 +168,14 @@ if(MSVC)
include_directories(${PTHREADS_INCLUDE_DIR}) include_directories(${PTHREADS_INCLUDE_DIR})
endif() 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) find_package(OpenMP)
if(OPENMP_FOUND) if(OPENMP_FOUND)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
endif() endif()
endif()
#look for all *.h files in src folder #look for all *.h files in src folder
file(GLOB headers "${CMAKE_CURRENT_LIST_DIR}/src/*.h") file(GLOB headers "${CMAKE_CURRENT_LIST_DIR}/src/*.h")
@ -226,7 +231,7 @@ endif()
target_compile_definitions(darklib PRIVATE LIB_EXPORTS=1) target_compile_definitions(darklib PRIVATE LIB_EXPORTS=1)
set_target_properties(darklib PROPERTIES LINKER_LANGUAGE CXX) set_target_properties(darklib PROPERTIES LINKER_LANGUAGE CXX)
if(OpenCV_VERSION_MAJOR GREATER_EQUAL 3) if(OpenCV_VERSION VERSION_GREATER "3.0" AND NOT SKIP_USELIB_TRACK)
add_executable(uselib_track ${CMAKE_CURRENT_LIST_DIR}/src/yolo_console_dll.cpp) add_executable(uselib_track ${CMAKE_CURRENT_LIST_DIR}/src/yolo_console_dll.cpp)
target_compile_definitions(uselib_track PRIVATE TRACK_OPTFLOW=1) target_compile_definitions(uselib_track PRIVATE TRACK_OPTFLOW=1)
set_target_properties(uselib_track PROPERTIES LINKER_LANGUAGE CXX) set_target_properties(uselib_track PROPERTIES LINKER_LANGUAGE CXX)
@ -250,8 +255,8 @@ if(OpenCV_FOUND)
endif() endif()
if(OPENMP_FOUND) if(OPENMP_FOUND)
target_link_libraries(darknet OpenMP::OpenMP_C) target_link_libraries(darknet OpenMP::OpenMP_CXX)
target_link_libraries(darklib OpenMP::OpenMP_C) target_link_libraries(darklib OpenMP::OpenMP_CXX)
endif() endif()
if(CMAKE_COMPILER_IS_GNUCC) if(CMAKE_COMPILER_IS_GNUCC)
@ -275,7 +280,7 @@ if(ENABLE_CUDA)
endif() endif()
target_link_libraries(uselib darklib) target_link_libraries(uselib darklib)
if(OpenCV_VERSION_MAJOR GREATER_EQUAL 3) if(OpenCV_VERSION VERSION_GREATER "3.0" AND NOT SKIP_USELIB_TRACK)
target_link_libraries(uselib_track darklib) target_link_libraries(uselib_track darklib)
install(TARGETS uselib_track DESTINATION ${CMAKE_SOURCE_DIR}/) install(TARGETS uselib_track DESTINATION ${CMAKE_SOURCE_DIR}/)
endif() endif()

@ -0,0 +1,67 @@
image: Visual Studio 2017
clone_folder: c:\projects\darknet
environment:
WORKSPACE: C:\projects
matrix:
- platform: Cygwin64
COMPILER: cygwin
CYGWIN_NOWINPATH: yes
CYGSH: C:\cygwin64\bin\bash -c
- platform: Win64
COMPILER: vs
VCPKG_ROOT: C:\projects\vcpkg
VCPKG_DEFAULT_TRIPLET: x64-windows
USE_CUDA: yes
CUDACXX: C:\CUDA\bin\nvcc.exe
CUDA_PATH: C:\CUDA\
CUDA_PATH_V10_0: C:\CUDA\
- platform: Win64
COMPILER: vs
VCPKG_ROOT: C:\projects\vcpkg
VCPKG_DEFAULT_TRIPLET: x64-windows
USE_CUDA: no
- platform: Win64
COMPILER: vs
USE_INTEGRATED_LIBS: yes
install:
- if [%COMPILER%]==[vs] cinst cmake ninja
- if [%COMPILER%]==[vs] SET "PATH=C:\Program Files\CMake\bin;%PATH%"
- if [%COMPILER%]==[vs] call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
- if [%COMPILER%]==[cygwin] SET "PATH=C:\cygwin64\bin;C:\cygwin64\usr\bin;%PATH%"
- if [%COMPILER%]==[cygwin] SET PATH=%PATH:C:\Program Files\Git\usr\bin;=%
- git submodule -q update --init --recursive
- cd %WORKSPACE%\
- if [%USE_CUDA%]==[yes] curl -L https://developer.nvidia.com/compute/cuda/10.0/Prod/local_installers/cuda_10.0.130_411.31_windows -o cuda_10.0.130_411.31_windows.exe
- if [%USE_CUDA%]==[yes] mkdir C:\CUDATEMP
- if [%USE_CUDA%]==[yes] mkdir C:\CUDA
- if [%USE_CUDA%]==[yes] 7z x cuda_10.0.130_411.31_windows.exe -oC:\CUDATEMP
- if [%USE_CUDA%]==[yes] cd C:\CUDATEMP
- if [%USE_CUDA%]==[yes] FOR /D %%G in ("*") DO xcopy C:\CUDATEMP\%%G\* C:\CUDA\ /s /y
- cd %WORKSPACE%\
- mkdir cygwin-downloads
- ps: if($env:COMPILER -eq "cygwin") { Invoke-WebRequest https://cygwin.com/setup-x86_64.exe -OutFile $env:WORKSPACE\cygwin-setup.exe }
- if [%COMPILER%]==[cygwin] %WORKSPACE%\cygwin-setup.exe --quiet-mode --no-shortcuts --no-startmenu --no-desktop --upgrade-also --root C:\cygwin64 --local-package-dir %WORKSPACE%\cygwin-downloads --packages gcc-g++,cmake,libopencv-devel
- if [%COMPILER%]==[vs] if NOT [%USE_INTEGRATED_LIBS%]==[yes] git clone https://github.com/Microsoft/vcpkg
- if [%COMPILER%]==[vs] if NOT [%USE_INTEGRATED_LIBS%]==[yes] cd %VCPKG_ROOT%
- if [%COMPILER%]==[vs] if NOT [%USE_INTEGRATED_LIBS%]==[yes] bootstrap-vcpkg.bat
- if [%COMPILER%]==[vs] if NOT [%USE_INTEGRATED_LIBS%]==[yes] vcpkg integrate install
- 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 pthreads ## opencv[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"'
- if [%COMPILER%]==[vs] if NOT [%USE_INTEGRATED_LIBS%]==[yes] cmake -G "Visual Studio 15 2017" -T "host=x64" -A "x64" "-DCMAKE_TOOLCHAIN_FILE=%VCPKG_ROOT%\scripts\buildsystems\vcpkg.cmake" "-DVCPKG_TARGET_TRIPLET=%VCPKG_DEFAULT_TRIPLET%" -DCMAKE_BUILD_TYPE="Debug" ..
- cd ..
- mkdir build_release && cd build_release
- if [%COMPILER%]==[cygwin] %CYGSH% 'cmake .. -G "Unix Makefiles" -DCMAKE_BUILD_TYPE="Release"'
- if [%COMPILER%]==[vs] if NOT [%USE_INTEGRATED_LIBS%]==[yes] cmake -G "Visual Studio 15 2017" -T "host=x64" -A "x64" "-DCMAKE_TOOLCHAIN_FILE=%VCPKG_ROOT%\scripts\buildsystems\vcpkg.cmake" "-DVCPKG_TARGET_TRIPLET=%VCPKG_DEFAULT_TRIPLET%" -DCMAKE_BUILD_TYPE="Release" ..
- if [%COMPILER%]==[vs] if [%USE_INTEGRATED_LIBS%]==[yes] cmake -G "Visual Studio 15 2017" -T "host=x64" -A "x64" -DCMAKE_BUILD_TYPE="Release" ..
- cd ..
build_script:
- if [%COMPILER%]==[cygwin] cd build_debug && %CYGSH% 'cmake --build .' && cd ..
- if [%COMPILER%]==[cygwin] cd build_release && %CYGSH% 'cmake --build .' && cd ..
- if [%COMPILER%]==[vs] if NOT [%USE_INTEGRATED_LIBS%]==[yes] cd build_debug && cmake --build . --config Debug && cd ..
- if [%COMPILER%]==[vs] cd build_release && cmake --build . --config Release && cd ..

@ -63,10 +63,9 @@ void convolve_gpu(float *input, float *weights, float *output, int in_w, int in_
void convolve_bin_gpu(float *input, float *weights, float *output, int in_w, int in_h, int in_c, int n, int size, int pad, void convolve_bin_gpu(float *input, float *weights, float *output, int in_w, int in_h, int in_c, int n, int size, int pad,
int new_lda, float *mean_arr_gpu); int new_lda, float *mean_arr_gpu);
void convolve_bin_cpu(float *input, float *weights, float *output, int in_w, int in_h, int in_c, int n, //void convolve_bin_cpu(float *input, float *weights, float *output, int in_w, int in_h, int in_c, int n, int size, int pad, int new_lda, float *mean_arr_gpu);
int size, int pad, int new_lda, float *mean_arr_gpu);
void convolve_cpu(float *input, float *weights, float *output, int in_w, int in_h, int in_c, int n, int size, int pad); //void convolve_cpu(float *input, float *weights, float *output, int in_w, int in_h, int in_c, int n, int size, int pad);
#endif #endif
#ifdef __cplusplus #ifdef __cplusplus

@ -1818,7 +1818,7 @@ void gemm_nn_custom_bin_mean_transposed_gpu(int M, int N, int K,
} }
// -------------------------------- // --------------------------------
/*
void convolve_cpu(float *input, float *weights, float *output, int in_w, int in_h, int in_c, int n, int size, int pad) void convolve_cpu(float *input, float *weights, float *output, int in_w, int in_h, int in_c, int n, int size, int pad)
{ {
int fil; int fil;
@ -1929,6 +1929,7 @@ void convolve_bin_cpu(float *input, float *weights, float *output, int in_w, int
} }
} }
} }
*/
// -------------------------------- // --------------------------------
__global__ void convolve_gpu_kernel(float *input, float *weights, float *output, int in_w, int in_h, int in_c, int n, int size, int pad) __global__ void convolve_gpu_kernel(float *input, float *weights, float *output, int in_w, int in_h, int in_c, int n, int size, int pad)

Loading…
Cancel
Save