LoginSignup
4

More than 1 year has passed since last update.

posted at

updated at

NEONと拡張命令と時々オトン

はじめに

NEONここがすごいよ

  • 個人的に押したいのはld3命令1つだけです。
  • SSEやAVXやMSAでも実装されてないgather命令ですが、これがあるだけでRGB画像への障壁が全然違います1
  • st3も大好きです。
  • 一方で、残りの23日分はいわばおまけです。
  • おまけとは言いつつも、全体の構成はもうちょっと考えるべきだったかも、と反省しています。
    • なんで、24日目がcvt命令やねん、もっと前だろ、とセルフツッコミ

Arm v8.2、v8.4、v8.6

  • Arm は命令セットのv8を出したあとも、小数点以下を上げながら、Arm v8.1からArm v8.6まで発表しています。2
  • Arm v8.2では、FP16のままの演算命令が追加されました。
  • まだ触ったことないのですが、dotprod命令がArm v8.4で追加されたようです。
  • 巷で話題のbfloat型も、Arm v8.6からサポートされるとアナウンスされたので、触れる日が来るのを楽しみにしています。

SVE

  • そして本アドベントカレンダー通して一切触れませんでしたが、SVE(Scalable Vector Extension)を普通に触れる日が来るのを楽しみにしています
  • 私が把握している範囲だと、富岳に使われてるA64FXに実装されており、それ以外に私みたいな平民が触るためにはqemuなどのシミュレータを使うしかないみたいです
  • また、全然把握していなかったのですが、SVE2もアナウンスされています
  • まだどんなものなのか全然確認していませんが、手元に来て使える日を楽しみにしています。

書籍に付いて

  • 実はこのアドベントカレンダーは元々は@dandelion1124 先生に煽られて345NEONのリファレンス本なるものを作ろうとしていたのです。
  • 元々の予定では技術書典8(本来なら2020年2月28日から開催のはず)で頒布する予定だったのですが、見事締め切りを守れず、今日に至ります。
  • このままだとズルズルと出ない本になりそうだったので、一念発起、ひとりアドベントカレンダーで自分を追い込んで、書籍の下書きに相当するものを書いてみました。
  • できれば、近い内に本にまとめる、、、かも?

ひとりアドベントカレンダー

  • めっちゃ孤独だったし、完走できるかプレッシャーが強かったのですが、なんとか完走できてよかったです。6
  • ひとえに応援してくれた皆様のおかげでもあります。(大事なことなので2回書いた)

おわりに

  • NVIDIAの手島が、NEON大好きだよっ!ってポエムを25日間書きました。会社は関係ないよ!
  • ここで筆を置こうと思います。

  1. OpenCVでの実装例を見る限り、VSXにはSSEより自由度の高いシャッフルがあるため、ld3とほぼ等価なことを合計9命令(ロード$\times$3回、シャッフル$\times$6回)で実行可能に見えます。が、例により、未検証です。 

  2. アドベントカレンダー中ではArm v8.2、v8.4、v8.6にしか言及しませんでしたが、Arm v8.1、v8.3そしてv8.5もちゃんとあります。 

  3. https://twitter.com/dandelion1124/status/1171034911257448448 

  4. https://twitter.com/tomoaki_teshima/status/1136966923038519298 

  5. https://twitter.com/tomoaki_teshima/status/1139546116330967040 

  6. 11月30日に自転車で転倒して肋骨にヒビが入り、医者に行く時間も無くて、仕事も佳境で、途中で本気でこれは駄目だと何回か思った 

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
4