xbyakによる実装スケジュールナースのブログ2020年2月10日月曜日xbyakによる実装Xbyakは、Intelのアセンブリ言語命令を実行時に生成するC++のライブラリです。今の時代、LLVMがあるので、C++コードのJITコンパイルも可能になっており、その必要性は狭まってはいますが、Xbyakで記述した方が手軽な場合もあります。IntelのMKL-DLLという深層学習用の高速化ライブラリがありますが、そのエンジンには、Xbyakが使われているそうです。aarch64(ARMの64ビットアークテクチャ)にも移植されているようです。Xbyakの概要はこちら。なくて、AL4の高速化です。AL4は、数理的ソルバーですが、部分問題を解く必要があり、そのための新しいアイデアに対する実装に使用します。コンパイル時定数であれば、C++テンプレートでC++コンパイラが勝手に最適化してくれますが、RUNTIME時定数では、テンプレートは何の役にも立ちません。RUNTIME時定数というメリットを最大限使って高速化を図ります。Xbyakの使用は、初めてで、SSE2も初めてなので、初めてのXbyakによるSSE2ということで、実装中のコードを使用して、この先書きたいと思います。(Atom)自己紹介スケジュールナーススケジュールナースという勤務表自動作成ソフトを開発・販売しています。本ブログでは、ユーザ様の要求仕様を「制約プログラム」に変換していく様子をメインに紹介していきたいと思います。