初めに サイボウズ・ラボの光成です。 DNN(deep neural network : 深層学習)といえばGPUや専用プロセッサを使うのが主流です。 しかしIntelはCPUで高速にDNNをするためのライブラリ MKL-DNN を提供しています。 MKL-DNNはIntelの最新CPUに対応したオープンソースソフトウェアなのでコードを見ると勉強になります。 ここではMKL-DNNで使われているテクニックをいくつか紹介します。 概要 MKL-DNNの紹介 Xbyakの紹介 呼び出し規約 圧縮displacement ReLU exp 内積 vpdpbusd キャッシュコントロール 想定読者 C++11とx64 CPUのアセンブリ言語の知識をある程度仮定します。 機械学習についてはその知識がなくても最適化手法が理解できるよう、最小限の説明をします。 MKL-DNNの特長 まずMKL-DNNの
![MKL-DNNで学ぶIntel CPUの最適化手法 - Cybozu Inside Out | サイボウズエンジニアのブログ](https://cdn-ak-scissors.b.st-hatena.com/image/square/d5f1afe53f6c109143fab4cf71f4928f92cd4887/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fc%2Fcybozuinsideout%2F20190411%2F20190411223730.png)