Почему DL4j 1.0.0-Beta6 больше не использует MKL? - PullRequest
0 голосов
/ 22 января 2020

Для меня DL4j 1.0.0-Beta6 больше не использует Intel MKL:

WARN 28823 --- [:54:17 UTC 2020] org.nd4j.linalg.factory.Nd4jBackend      : Skipped [JCublasBackend] backend (unavailable): java.lang.UnsatisfiedLinkError: /home/app/.javacpp/cache/cuda-10.0-7.4-1.5-linux-x86_64.jar/org/bytedeco/cuda/linux-x86_64/libjnicudart.so: libcuda.so.1: cannot open shared object file: No such file or directory
INFO 28823 --- [:54:17 UTC 2020] org.nd4j.linalg.factory.Nd4jBackend      : Loaded [CpuBackend] backend
INFO 28823 --- [:54:17 UTC 2020] org.nd4j.nativeblas.NativeOpsHolder      : Number of threads used for linear algebra: 1
WARN 28823 --- [:54:17 UTC 2020] o.n.l.cpu.nativecpu.CpuNDArrayFactory    : *********************************** CPU Feature Check Warning ***********************************
WARN 28823 --- [:54:17 UTC 2020] o.n.l.cpu.nativecpu.CpuNDArrayFactory    : Warning: Initializing ND4J with Generic x86 binary on a CPU with AVX/AVX2 support
WARN 28823 --- [:54:17 UTC 2020] o.n.l.cpu.nativecpu.CpuNDArrayFactory    : Using ND4J with AVX/AVX2 will improve performance. See deeplearning4j.org/cpu for more details
WARN 28823 --- [:54:17 UTC 2020] o.n.l.cpu.nativecpu.CpuNDArrayFactory    : Or set environment variable ND4J_IGNORE_AVX=true to suppress this warning
WARN 28823 --- [:54:17 UTC 2020] o.n.l.cpu.nativecpu.CpuNDArrayFactory    : *************************************************************************************************
INFO 28823 --- [:54:17 UTC 2020] org.nd4j.nativeblas.Nd4jBlas             : Number of threads used for OpenMP BLAS: 1
INFO 28823 --- [:54:17 UTC 2020] o.n.l.a.o.e.DefaultOpExecutioner         : Backend used: [CPU]; OS: [Linux]
INFO 28823 --- [:54:17 UTC 2020] o.n.l.a.o.e.DefaultOpExecutioner         : Cores: [2]; Memory: [0.4GB];
INFO 28823 --- [:54:17 UTC 2020] o.n.l.a.o.e.DefaultOpExecutioner         : Blas vendor: [OPENBLAS]

Я попытался просто добавить обычные nd4j-native и различные комбинации nd4j-native: классификаторов avx. Я вижу mkl & mkl-dnn в моем дереве mvn-dependency-tree, но при запуске он всегда сообщает об использовании Openblas.

Почему Beta6 больше не использует MKL?

1 Ответ

0 голосов
/ 22 января 2020

Это все еще делает. Просто убедитесь, что вы используете двоичные файлы avx2 или avx512 (в зависимости от вашего фактического процессора)

ps Когда речь идет о реальных слоях, таких как conv2d, будет использоваться MKL-DNN и внутренне высокопроизводительный MKL gemm будет использоваться.

...