Hi all,

I am planning to add Native backend guide. The document should
answer the following questions. Please, feel free to add new points
or contribute to discussion. thanks.

User guide

1. BLAS Installation instructions

1a. Intel MKL
Download Intel MKL from [1].
Version of MKL (2017 and higher), do we use MKL DNN primitives?

1b. OpenBLAS
Compiling OpenBLAS with OpenMP is recommended instead of apt-get/yum.
instructions are at [2].

2. How to provide the location of native libraries?

via commandline
-  Java: -Djava.library.path=/path/to/blas-n-other-dependencies
- Spark: --conf
spark.executorEnv.LD_LIBRARY_PATH=/path/to/blas-n-other-dependencies

This can also be set with `sysds.native.blas.directory`

3. How to enable native BLAS?

set sysds.native.blas[3] to either mkl, openblas

Troubleshooting
 - 1. Unable to load gomp
 - 2. Unable to load mkl_rt
 - 3. Unable to load openblas
 - 4. Using OpenBLAS without OpenMP can lead to performance issues
 - 5. Using MKL can lead to slow performance for convolution instruction

---
[1]
https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onemkl.html
[2] https://github.com/xianyi/OpenBLAS#installation-from-source
[3]
https://github.com/apache/systemds/blob/master/conf/SystemDS-config.xml.template#L61

Thank you,
Janardhan

Reply via email to