Октава 4.2.1 и Intel MKL

Я скомпилировал Октаву 4.2.1 из источников без ошибки. Там какой-либо путь состоит в том, чтобы заставить его использовать Intel Math Kernel Library?

Я установил его в \opt\intel. Когда я добавляю его к blas и lapack альтернативам с:

sudo update-alternatives --install /usr/lib/libblas.so.3 \
                                 libblas.so.3 \
                                 /opt/intel/compilers_and_libraries/linux/mkl/lib/intel64/libmkl_rt.so \
                                 50

sudo update-alternatives --install /usr/lib/liblapack.so.3 \
                                 liblapack.so.3 \
                                 /opt/intel/compilers_and_libraries/linux/mkl/lib/intel64/libmkl_rt.so \
                                 50

Октава не запускается со следующей ошибки:

Intel MKL FATAL ERROR: Cannot load libmkl_core.so.

Я также попытался скомпилировать Октаву с помощью MKL.

export JAVA_HOME="/usr/lib/jvm/default-java"
export CFLAGS="-O2 -fPIC -DMKL_LP64 -DM_PI=3.1415926535897932384"
export FFLAGS="-O2 -fPIC"
export CPPFLAGS="-I/opt/intel/mkl/include/ -I/opt/intel/mkl/include/fftw/"
export LDFLAGS="-L/opt/intel/mkl/lib/intel64 -L/opt/intel/lib/intel64"
export LD_LIBRARY_PATH="/usr/lib/gcc:/usr/lib/gcc/x86_64-linux-gnu/:/opt/intel/lib/intel64:/opt/intel/mkl/lib/intel64:$LD_LIBRARY_PATH"

./configure --prefix=/opt/octave4_2_mkl --with-blas="-lmkl_gf_lp64 -lmkl_gnu_thread -lmkl_core -liomp5 -lpthread" --with-lapack="-lmkl_gf_lp64 -lmkl_gnu_thread -lmkl_core -liomp5 -lpthread" --with-fftw3="-lmkl_gf_lp64 -lmkl_gnu_thread -lmkl_core -liomp5 -lpthread -lm" --with-fftw3f="-lmkl_gf_lp64 -lmkl_gnu_thread -lmkl_core -liomp5 -lpthread -lm"

К сожалению, хотя./настраивать не выкладывает ошибок, когда я работаю, 'делают', и 'осуществляют проверку' впоследствии, тест становится сумасшедшим и выходит с Сигналом 6.

2
задан 9 March 2017 в 13:47

2 ответа

Возможно, Вы уже поняли это, но я заставил это работать (также Октава 4.2.1), FWIW здесь являются шагами:

Установка библиотека MKL, затем настроенные альтернативы обновления:

sudo update-alternatives --install /usr/lib/libblas.so libblas.so  /opt/intel/mkl/lib/intel64/libmkl_rt.so 50

sudo update-alternatives --install /usr/lib/libblas.so.3 libblas.so.3 /opt/intel/mkl/lib/intel64/libmkl_rt.so 50

sudo update-alternatives --install /usr/lib/liblapack.so  liblapack.so  /opt/intel/mkl/lib/intel64/libmkl_rt.so 50

sudo update-alternatives --install /usr/lib/liblapack.so.3 liblapack.so.3 /opt/intel/mkl/lib/intel64/libmkl_rt.so 50

Теперь создают файл mkl.conf в/etc/ld.so.conf.d с путями как записи:

/opt/intel/lib/intel64

/opt/intel/mkl/lib/intel64

Затем выполненный в терминале

sudo ldconfig

Теперь используют альтернативы обновления, настраивают для использования mkl в качестве blas

по умолчанию, Чтобы проверить, использует ли октава mkl, запустите октаву, откройте терминал и тип

ps aux | grep octave

, который Мой вывод показывает 3 процессам, второй походит

my_user_name  6032  6.4  1.7 1454636 103952 ?      Ssl  08:05   0:01 /usr/local/libexec/octave/4.2.1/exec/x86_64-pc-linux-gnu/octave-gui --force-gui

, отмечают, что PID (6032 здесь) затем в терминале работает

lsof -p 6032 | grep 'mkl' (change 6032 to your process's PID)

, Мой вывод

octave-gu 6032  my_user_name  mem  REG  8,2  5461454 4594702 /opt/intel/compilers_and_libraries_2017.2.174/linux/mkl/lib/intel64_lin/libmkl_rt.so

, Если бы это не использует mkl, это ничего не показало бы.

Вы не должны компилировать октаву с MKL, Октава пользуется любой blas библиотекой, связанной с/usr/lib/libblas и/usr/lib/libbapack динамично. Можно переключиться с альтернативами обновления, и октава будет использовать тот, который Вы выбираете. Я скомпилировал октаву 4.2.1, прежде чем у меня был MKL, я использовал openblas в качестве своего blas, когда я скомпилировал.

В моей машине MKL на самом деле не быстрее, чем openblas, если последний создается к оптимизированному для аппаратных средств (а не установил прямо от repo)

2
ответ дан 2 December 2019 в 03:42

Не уверен, что этой страницы не существовало, когда был задан этот вопрос, но Intel предоставляет официальные инструкции по установке Octave с поддержкой MKL

https://software. intel.com/content/www/us/en/develop/articles/using-intel-mkl-in-gnu-octave.html

0
ответ дан 11 August 2020 в 08:36

Другие вопросы по тегам:

Похожие вопросы: