Linux memo 2020/11/15 (NEON)

NEONなんもわからん。

● ARM NEON 超入門
ARM Compiler toolchain Assembler Reference
https://developer.arm.com/documentation/dui0489/g/neon-and-vfp-programming/
ARM NEON Intrinsics - Using the GNU Compiler Collection (GCC)
https://gcc.gnu.org/onlinedocs/gcc-4.9.4/gcc/ARM-NEON-Intrinsics.html
SIMD Assembly Tutorial: ARM NEON (pdf注意)
http://download.xskernel.org/docs/processors/cortex-a53/neon_tutorial.pdf
ARM NEONの使い方 予告編 - おぺんcv
https://atkg.hatenablog.com/entry/2016/09/25/170031

● 超初心者のチート表
n: mov結果を半型にする
h: 計算後に2で割る
d: 計算後に2をかける
q: 桁あふれ時にオーバフローさせず上限張り付き
r: シフト結果を丸める
l: 計算結果の型を倍型にする
hn: 計算結果から上位半分取り出して半型にする
w: 計算元の片側が半型
q: 倍幅で計算

● 初心者の感想
- レジスタへのload, storeがめんどい。NEONフレンドリーなデータ構造・配列にしておかないと効率よくない
- 計算順は大事。積和(vmla)にしないと命令数増えて効率悪い
- 計算幅大事。64bitだとx2なので並列度が上がらない。オーバーフローをうまく処理して32bitのx4や16bitのx8にしないといけない
- パイプラインよくわからん。依存低い並びにしないと処理速度上がらないらしいが、その域はまだよくわかってない

このブログ記事について

このページは、らるるが2020年11月15日 23:28に書いたブログ記事です。

ひとつ前のブログ記事は「Linux memo 2020/10/17」です。

次のブログ記事は「Linux memo 2020/12/29」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

月別 アーカイブ

ウェブページ

Powered by Movable Type 7.9.0