VNNIの話

コンピュータ将棋発の局面評価関数であるNNUEがチェス界を騒がせているらしい。

https://blog.stockfishchess.org/post/625828091343896577/introducing-nnue-evaluation

blog.stockfishchess.org

 

  

チェスや将棋のソフトウェアは局面評価と探索の二輪で開発されているので,今回半分ごっそり新しくなったと言っていい。控えめに言っても革命。実質別ソフトと言っていいと思う。

加えてVNNI対応を遂げたらしい。

 

  

さて,VNNIとは何だろうか。

正式名はVector Neural Network Instructions。Intel社が最近のCPU向けに追加した拡張命令群である。INT8のニューラルネットに特化したもので,どれだけIntel社がAI分野に興味があるかを示していると思う。

詳しくは下記リンク。

www.intel.com

 

実は今年の選手権に向けてNNUEのVNNI実装を試してた。

そのためにCascadeLakeのi9をひとつだけ買い入れて試行錯誤を行って,ある程度の高速化が確認されていた。

問題はAWSの環境で直前計測ではパフォーマンスが若干マイナスの効果であったため本番では使えなかった。

恐らく高速化の効果とサーバ用XeonでのAVX-512ペナルティが相殺された形であろう。AVX-512のペナルティとは演算量の多い拡張命令を多用すると安全のためにクロック上限を下げてくる機能である。ハイエンドデスクトップでは緩い規制であったが,AWSで使われるようなXeonではきっちり下がってくるようである。

ということで,実装しても性能出ないというのが今春の段階だった。

 

まぁ,チェス界隈は技術力があるのかどうかさっくりと実装してくれたみたい。

ソース見て確認させてもらおうかと思う。

 

技術的に停滞するとか誰かおっしゃってましたが,今年も色々と忙しいですね。

 

 ---

追記:

VNNI搭載CPUはCascadeLake-SPと言われる多ソケット用のXeon,CascadeLake-Xと言われるハイエンドデスクトップのi9,省電力ノート用のIceLakeのUプロセッサと現行三ラインしかない。

まだまだ過渡期で一般的に流行るのはこれからですね。