A CUDA version random decision forest, provides roughly 700+ and 750+ times speedups for training and inference respectively over CPU counterpart.
The CPU version of the RDF is taken from Zhi: https://github.com/czkg/RDF
Dependencies:
- Boost 1.62.0: http://www.boost.org/users/history/version_1_62_0.html
- OpenCV 2.4.11: http://opencv.org/downloads.html
- ProtoBuf 3.0.0: https://developers.google.com/protocol-buffers/
Tools:
- Visual Studio 2013
- CMake 3.7.1
- Cygwin
- Goto the release page and download "protobuf-cpp-3.0.0.zip"
- Download "protoc-3.0.0-win32.zip" and unzip it to get a bin folder in which there is the protoc compiler binary
- Add the path to the protoc compiler to the Windows environment variable (PATH)
- Unzip the file in step 1 and get a folder called "protobuf-3.0.0" which is referred
to as
$PROTO_ROOT$ in the remainder of this document - Open CMake and set the
$PROTO_ROOT/cmake$ as the path to the source code and make a folder under$PROTO_ROOT/cmake$ called build, add$PROTO_ROOT/cmake/build$ as the path to build the binaries - Click Configure and then Generate
- Use Visual Studio to open the "protobuf.sln" under
$PROTO_ROOT/cmake/build$ - Goto the project property and set the Runtime Library to MT under Code Generation Tab
- Compile the project with x64
- You will have two folders
$PROTO_ROOT/cmake/build/Release$ and$PROTO_ROOT/cmake/build/Debug$ in which there are complied binaries
- Unzip the downloaded file and get a folder called "boost_1_62_0" which will be
referred to as
$BOOST_ROOT$ in the remainder of this document - Open a command prompt as an administrator
- Change directory to
$BOOST_ROOT$ - Run >bootstrap
- Run >bjam --toolset=msvc-12.0 architecture=x86 address-model=64 stage
- The compiled binaries are under
$BOOST_ROOT/stage$
- Open Cygwin and change directory to the folder where you extract the RDF codes,
we refer to this folder as
$RDF_ROOT$ - Run $create_proto.sh
- Create a folder build under
$RDF_ROOT$ - Set
$RDF_ROOT$ as the path to the source code and set$RDF_ROOT/build$ as the path to build the binaries - Click Configure
- If CMake cannot find any path automatically, manually input the path to the necessary dependencies
- Click Generate
- Use Visual Studio to open the .sln file under
$RDF_ROOT/build$ - Try to compile the project in x64
- "FeatureTest" might require a different boost library we don't have, we can simply delete this sub-project in that case
- Add headers <sys/types.h>, <sys/stat.h> <io.h> <stdio.h> to myRDF.cpp, and change the Linux specific functions open and close to _open and _close respectively