Skip to content

Commit

Permalink
* Add CUDA/OpenCL-enabled builds for OpenCV, Caffe, and TensorFlow v…
Browse files Browse the repository at this point in the history
…ia `-gpu` extension (issue bytedeco/javacv#481)
  • Loading branch information
saudet committed Dec 16, 2017
1 parent b300f7e commit 681ca06
Show file tree
Hide file tree
Showing 17 changed files with 298 additions and 140 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@

* Add CUDA/OpenCL-enabled builds for OpenCV, Caffe, and TensorFlow via `-gpu` extension ([issue bytedeco/javacv#481](https://github.com/bytedeco/javacv/issues/481))
* Enable NVIDIA CUDA, CUVID, and NVENC acceleration for FFmpeg ([pull #492](https://github.com/bytedeco/javacpp-presets/pull/492))
* Include `message_lite.h`, `saver.pb.h`, `meta_graph.pb.h`, and `loader.h` for TensorFlow ([issue #494](https://github.com/bytedeco/javacpp-presets/issues/494))
* Add `getString()` helper methods to `CXString`, `CXTUResourceUsageKind`, and `CXEvalResult` for `clang` ([issue bytedeco/javacpp#51](https://github.com/bytedeco/javacpp/issues/51))
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
JavaCPP Presets
===============

[![Join the chat at https://gitter.im/bytedeco/javacpp](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/bytedeco/javacpp?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.bytedeco/javacpp-presets/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.bytedeco/javacpp-presets) [![Travis CI](https://travis-ci.org/bytedeco/javacpp-presets.svg?branch=master)](https://travis-ci.org/bytedeco/javacpp-presets) [![AppVeyor](https://ci.appveyor.com/api/projects/status/github/bytedeco/javacpp-presets?branch=master&svg=true)](https://ci.appveyor.com/project/bytedeco/javacpp-presets)
[![Join the chat at https://gitter.im/bytedeco/javacpp](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/bytedeco/javacpp?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.bytedeco/javacpp-presets/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.bytedeco/javacpp-presets) [![Sonatype Nexus (Snapshots)](https://img.shields.io/nexus/s/https/oss.sonatype.org/org.bytedeco/javacpp-presets.svg)](http://bytedeco.org/builds/) [![Travis CI](https://travis-ci.org/bytedeco/javacpp-presets.svg?branch=master)](https://travis-ci.org/bytedeco/javacpp-presets) [![AppVeyor](https://ci.appveyor.com/api/projects/status/github/bytedeco/javacpp-presets?branch=master&svg=true)](https://ci.appveyor.com/project/bytedeco/javacpp-presets)


Introduction
Expand Down
37 changes: 19 additions & 18 deletions caffe/cppbuild.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,39 +7,40 @@ if [[ -z "$PLATFORM" ]]; then
exit
fi

export CPU_ONLY=1
export USE_CUDNN=0
if [[ "$EXTENSION" == *gpu ]]; then
export CPU_ONLY=0
export USE_CUDNN=1
fi

case $PLATFORM in
linux-x86)
export CPU_ONLY=1
export CC="$OLDCC -m32"
export CXX="$OLDCXX -m32"
export FC="$OLDFC -m32"
export TOOLSET=`echo $OLDCC | sed 's/\([a-zA-Z]*\)\([0-9]\)\([0-9]\)/\1-\2.\3/'`
export CC="gcc -m32"
export CXX="g++ -m32"
export FC="gfortran -m32"
export TOOLSET="gcc"
export BINARY=32
export BLAS=open
export CUDAFLAGS=
export USE_CUDNN=0
;;
linux-x86_64)
export CPU_ONLY=0
export CC="$OLDCC -m64"
export CXX="$OLDCXX -m64"
export FC="$OLDFC -m64"
export TOOLSET=`echo $OLDCC | sed 's/\([a-zA-Z]*\)\([0-9]\)\([0-9]\)/\1-\2.\3/'`
export CC="gcc -m64"
export CXX="g++ -m64"
export FC="gfortran -m64"
export TOOLSET="gcc"
export BINARY=64
export BLAS=open
export CUDAFLAGS="-Xcompiler -std=c++98"
export USE_CUDNN=1
;;
macosx-*)
export CPU_ONLY=0
export CC="clang"
export CXX="clang++"
export LDFLAGS="-undefined dynamic_lookup"
export TOOLSET="clang"
export BINARY=64
export BLAS=atlas
export CUDAFLAGS=
export USE_CUDNN=1
;;
*)
echo "Error: Platform \"$PLATFORM\" is not supported"
Expand All @@ -65,8 +66,8 @@ download https://github.com/LMDB/lmdb/archive/LMDB_$LMDB.tar.gz lmdb-LMDB_$LMDB.
download http://downloads.sourceforge.net/project/boost/boost/${BOOST//_/.}/boost_$BOOST.tar.gz boost_$BOOST.tar.gz
download https://github.com/BVLC/caffe/archive/$CAFFE_VERSION.tar.gz caffe-$CAFFE_VERSION.tar.gz

mkdir -p $PLATFORM
cd $PLATFORM
mkdir -p "$PLATFORM$EXTENSION"
cd "$PLATFORM$EXTENSION"
INSTALL_PATH=`pwd`
mkdir -p include lib bin

Expand Down Expand Up @@ -159,8 +160,8 @@ export PATH=../bin:$PATH
export CXXFLAGS="-I../include -I$OPENCV_PATH/include -I$HDF5_PATH/include"
export NVCCFLAGS="-I../include -I$OPENCV_PATH/include -I$HDF5_PATH/include $CUDAFLAGS"
export LINKFLAGS="-L../lib -L$OPENCV_PATH -L$OPENCV_PATH/lib -L$HDF5_PATH -L$HDF5_PATH/lib"
make -j $MAKEJ BLAS=$BLAS OPENCV_VERSION=3 DISTRIBUTE_DIR=.. CUDA_ARCH=-arch=sm_30 USE_CUDNN=$USE_CUDNN proto
make -j $MAKEJ BLAS=$BLAS OPENCV_VERSION=3 DISTRIBUTE_DIR=.. CUDA_ARCH=-arch=sm_30 USE_CUDNN=$USE_CUDNN lib
make -j $MAKEJ BLAS=$BLAS OPENCV_VERSION=3 DISTRIBUTE_DIR=.. CPU_ONLY=$CPU_ONLY CUDA_ARCH=-arch=sm_30 USE_CUDNN=$USE_CUDNN proto
make -j $MAKEJ BLAS=$BLAS OPENCV_VERSION=3 DISTRIBUTE_DIR=.. CPU_ONLY=$CPU_ONLY CUDA_ARCH=-arch=sm_30 USE_CUDNN=$USE_CUDNN lib
# Manual deploy to avoid Caffe's python build
mkdir -p ../include/caffe/proto
cp -a include/caffe/* ../include/caffe/
Expand Down
20 changes: 3 additions & 17 deletions caffe/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,6 @@
<version>1.0-${project.parent.version}</version>
<name>JavaCPP Presets for Caffe</name>

<properties>
<javacpp.platform.oldcompiler>${javacpp.platform.compiler}</javacpp.platform.oldcompiler>
</properties>

<dependencies>
<dependency>
<groupId>org.bytedeco.javacpp-presets</groupId>
Expand Down Expand Up @@ -87,16 +83,6 @@
</dependency>
</dependencies>
<configuration>
<propertyKeysAndValues>
<property>
<name>platform.root</name>
<value>${javacpp.platform.root}</value>
</property>
<property>
<name>platform.compiler</name>
<value>${javacpp.platform.oldcompiler}</value>
</property>
</propertyKeysAndValues>
<classPaths>
<classPath>${basedir}/../opencv/target/classes/</classPath>
<classPath>${basedir}/../hdf5/target/classes/</classPath>
Expand All @@ -111,19 +97,19 @@
<includePath>${basedir}/../hdf5/cppbuild/${javacpp.platform}/include/</includePath>
<includePath>${basedir}/../openblas/target/classes/org/bytedeco/javacpp/include/</includePath>
<includePath>${basedir}/../openblas/cppbuild/${javacpp.platform}/include/</includePath>
<includePath>${basedir}/cppbuild/${javacpp.platform}/include/</includePath>
<includePath>${basedir}/cppbuild/${javacpp.platform}${javacpp.platform.extension}/include/</includePath>
</includePaths>
<linkPaths>
<linkPath>${basedir}/../opencv/cppbuild/${javacpp.platform}/lib/</linkPath>
<linkPath>${basedir}/../hdf5/cppbuild/${javacpp.platform}/lib/</linkPath>
<linkPath>${basedir}/../openblas/cppbuild/${javacpp.platform}/lib/</linkPath>
<linkPath>${basedir}/cppbuild/${javacpp.platform}/lib/</linkPath>
<linkPath>${basedir}/cppbuild/${javacpp.platform}${javacpp.platform.extension}/lib/</linkPath>
</linkPaths>
<preloadPaths>
<preloadPath>${basedir}/../opencv/cppbuild/${javacpp.platform}/bin/</preloadPath>
<preloadPath>${basedir}/../hdf5/cppbuild/${javacpp.platform}/bin/</preloadPath>
<preloadPath>${basedir}/../openblas/cppbuild/${javacpp.platform}/bin/</preloadPath>
<preloadPath>${basedir}/cppbuild/${javacpp.platform}/bin/</preloadPath>
<preloadPath>${basedir}/cppbuild/${javacpp.platform}${javacpp.platform.extension}/bin/</preloadPath>
</preloadPaths>
</configuration>
<executions>
Expand Down
Loading

0 comments on commit 681ca06

Please sign in to comment.