LoginSignup
4
6

More than 3 years have passed since last update.

Anacondaの商用利用有償化に際して: pipでIntel Math Kernel Library (MKL)をサクッと入れる (Windows)

Last updated at Posted at 2021-04-09

Anacondaの商用利用有償化された(商用の定義は割愛).minicondaをインストールし,conda forgeをrepoに指定すると問題ないらしいが,面倒なのでもうpip(+ poetry / pipenv)でよいのではと思っている.

だがよく言われる通り,こと行列演算等の数値計算に関しては,Intel製 CPU向けのMKLをベースにしたnumpyのほうが高速なので,pipでもMKLを使いたい.

ということで,WindowsでMKL対応のnumpyをインストールする手順を簡単にまとめる.

手順(numpyのインストール)

公式の手順に則ると面倒なので,ビルド済みのバイナリをダウンロードしてpip installする.

0. numpyのアンインストール

すでに入っているnumpyは消しておく: pip uninstall numpy

1. pipが対応するwheelを確認

from pip._internal.utils.compatibility_tags import get_supported
print(get_supported())

出力:

[<cp38-cp38-win_amd64 @ 2327399349312>, ...]

2. .whlファイルのダウンロード

カリフォルニア大学による非公式リポジトリから,pipが対応する.whlを探してダウンロードする(非公式なので自己責任).

numpy-<バージョン>+mkl*と書いてあるものがMKLとリンクしているnumpyで,vanillaとあるのは通常のもの.

私は,numpy‑1.19.5+mkl‑cp38‑cp38‑win_amd64.whlをダウンロードした.

3. pip install

pip install numpy‑1.19.5+mkl‑cp38‑cp38‑win_amd64.whl

4. 確認

>>> import numpy as np
>>> np.show_config()
blas_mkl_info:
    libraries = ['mkl_lapack95_lp64', 'mkl_blas95_lp64', 'mkl_rt']
    library_dirs = ['C:/Program Files (x86)/IntelSWTools/compilers_and_libraries_2020/windows/mkl/lib/intel64_win']
    define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
    include_dirs = ['C:/Program Files (x86)/IntelSWTools/compilers_and_libraries_2020/windows/mkl/include']
blas_opt_info:
...

ちゃんとmklとリンクされたnumpyが入っている.


同様にScipy等もインストール可能.

参考:

4
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
6