Back to Deeplearning4j

benchmarking_nd4j

contrib/benchmarking_nd4j/README.md

1.0.0-M2.11.3 KB
Original Source

benchmarking_nd4j

Simple Microbenchmarks for ND4J utilizing the JMH

Original credit to https://github.com/treo/benchmarking_nd4j

Building

mvn clean package

Running

java -jar target/benchmarks.jar

For a quick run, e.g. just the same Matrix Size progression as used in the Neanderthal benchmarks, run like this:

java -jar target/benchmarks.jar -f2 -i10 -wi 2 Neanderthal

Running the memory profiler to detect memory leaks

Ensure jemalloc is installed with the profiler enabled. Something like: wget https://github.com/jemalloc/jemalloc/releases/download/5.2.0/jemalloc-5.2.0.tar.bz2 &&
tar -xvf jemalloc-5.2.0.tar.bz2 &&
cd jemalloc-5.2.0 &&
./configure --enable-prof &&
make &&
make install

Run memory-prof.sh

This will run the above build process and the MemoryPressureTest which will allocate a large amount of memory and then free it. The jemalloc profiler will be used to detect memory leaks.

Choosing a BLAS Library

Since ND4J supports multiple blas libraries, you have to specify which one you actually want to use. For my own benchmarks I've been using MKL.

-Dorg.bytedeco.javacpp.openblas.load=mkl_rt

For more information see https://github.com/bytedeco/javacpp-presets/tree/master/openblas