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等もインストール可能.