LoginSignup
11
4

More than 3 years have passed since last update.

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

Last updated at Posted at 2020-12-24

はじめに

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日に自転車で転倒して肋骨にヒビが入り、医者に行く時間も無くて、仕事も佳境で、途中で本気でこれは駄目だと何回か思った 

11
4
0

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
  3. You can use dark theme
What you can do with signing up
11
4