libnd4j/dev-docs/linuxOnPower.md
This document explains how to build DL4J for Linux on Power
The following tools are necessary to build DL4J for Linux on Power
gcc version 4.9.X (older or newer version may cause build errors.) Check the version by "gcc --version", and install it from https://gcc.gnu.org/ if necessary. Look at Apppendix of this document to install gcc 4.9.
OpenJDK java 1.8 Check the version is OpenJDK and 1.8 by "java -version".
Apache Maven 3.3 or later Check the version by "mvn -v", and install it from https://maven.apache.org/ if necessary.
CUDA7.5 (CUDA7.0 is not supported) Check the version by "nvcc -V"
cmake version 3.5.0 or later
Edit the CUDA, JAVA_HOME, CC, CXX environment variables according to your system
export CUDA=/usr/local/cuda-7.5 # CUDA Directory
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-ppc64el # JAVA Directory
export CC=/path/to/gcc # gcc command for build
export CXX=/path/to/g++ # g++ command for build
export MAVEN_OPTS='-Xmx4096M -Dos.arch=ppc64le'
export _JAVA_OPTIONS=-Dos.arch=ppc64le
export LIBND4J_HOME=`/bin/pwd`/libnd4j
export CUDA_VISIBLE_DEVICES=0
git clone https://github.com/eclipse/deeplearning4j.git
Before: <nd4j.backend>nd4j-native</nd4j.backend>
After: <nd4j.backend>nd4j-cuda-7.5</nd4j.backend>
(cd javacpp/; mvn clean install -DskipTests)
(cd libnd4j; ./buildnativeoperations.sh)
(cd libnd4j; ./buildnativeoperations.sh -c cuda)
(cd nd4j; mvn -e clean install -DskipTests -DskipTests -Djavacpp.platform.dependency=false -Dmaven.javadoc.skip=true)
(cd Canova/; mvn clean install -DskipTests -Djavacpp.platform.dependency=false)
(cd deeplearning4j; mvn clean package -DskipTests -Djavacpp.platform.dependency=false)
(cd dl4j-0.4-examples; mvn clean package -DskipTests)
(cd dl4j-0.4-examples; java -cp target/deeplearning4j-examples-0.4-rc0-SNAPSHOT-bin.jar org.deeplearning4j.examples.convolution.LenetMnistExample)
How to build gcc 4.9.3 on Linux on Power
$ tar xvfz gcc-4.9.3.tar.gz
$ cd gcc-4.9.3
$ mkdir -p build
$ (cd build; ../configure --enable-languages=c,c++ --prefix=<install path> --disable-bootstrap --disable-multilib)
$ (cd build; make)
$ (cd build; make install)
# You need to add <install path>/lib64 in LD_LIBRRY_PATH
# BLAS need to be specified in LD_LIBRARY_PATH to run CPU(native) version