Benchmarks of artificial neural network implementation for
The goal is to benchmark the library, compare it with the other tools and test scalability with the number of nodes in the cluster.
The intention is to test a big model. Data is small so the time needed to read the data can be ignored.
RedHat 6.x has an older GCC compiler that has libgfortran library that is incompatible with netlib-java wrappers. Check GCC version: gcc -v
. New GCC should be ALWAYS in your path:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/new/gcc/lib64
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/your/openblas
ln -s libopenblas.so libblas.so.3
libblas.so.3
in your path.
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/your/openblas
ln -s cblas_LINUX.so libblas.so.3
sudo apt-get install blas
objdump -T libblas.so.3 | grep "cblas"
nvblas.conf
file within /your/cuda/lib64
. Copy the contents from: http://docs.nvidia.com/cuda/nvblas/#NVBLAS_CONFIG_FILE. Modify the log path within the file.export NVBLAS_CONFIG_FILE=/your/cuda/lib64/nvblas.conf
libblas.so.3
in your path.
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/your/cblas:/your/cuda/lib64
export LD_PRELOAD=/your/cuda/lib64/libnvblas.so
-Pnetlib-lgpl
flag to use native BLASMakefile.config
to point to the same OpenBLAS lib (and CUDA) as for Sparktools/caffe.cpp
:
sed -i "s/float/double/g" caffe.cpp
export $CAFFE=/your/caffe/
$CAFFE/data/mnist/get_mnist.sh
$CAFFE/examples/mnist/create_mnist.sh
$CAFFE/build/tools/caffe train --solver=mnist-lmdb-5h.solver
Preliminary results (s):
Nodes | ANN-total | ANN-compute | Caffe | Caffe60K |
---|---|---|---|---|
5 | 29 | 21 | 62 | 56 |
4 | 27 | 24 | 62 | 56 |
3 | 35.2 | 33 | 62 | 56 |
2 | 47 | 44 | 62 | 56 |
1 | 86 | 84 | 62 | 56 |
The lastest results are in the spreadsheet: https://docs.google.com/spreadsheets/d/13U1fwF5-h90X-VeF01dOT-IlJtwYa1AsRtCBjAkSqKI/edit?usp=sharing