contrib/benchmarking_nd4j/README.md
Simple Microbenchmarks for ND4J utilizing the JMH
Original credit to https://github.com/treo/benchmarking_nd4j
mvn clean package
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
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.
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