MKL-DNN
PyTorch
TorchScript
libtorchから呼び出せるJIT-compiled モデル.
最初の20ループくらいで最適化が走るっぽい (ref).
Fused-opsとかいろいろ.
BLAS
PyTorchは pip install時のCMakeでBLASライブラリを自動検出して利用.
並列計算
以下の2タイプをサポート
- inter-op parallelism
- intra-op parallelism
inter-op parallelisum: AsyncTask & multi-threads で並列計算可能. torchの演算をAsyncTaskに入れてawaitする感じ.
intra-op parallelism: torchの演算を内部でparallel実行. でっかい1つの行列計算とか.
内部的にはATen/MKL/MKL-DNNの並行計算機能を利用. これらはOpenMP or TBBに依存.
デフォルトではOpenMP ON1
参考文献
-
“Pre-built PyTorch releases are compiled with OpenMP support.” PyTorch. CPU THREADING AND TORCHSCRIPT INFERENCE.↩