2023年02月26日
win64のアライン16BYTE規制で思う事
64bitOSだから8byteアラインを強制されるなら仕方ないと思う
でも16byteアラインはどうなんだろう?
「SSEで128bit を高速に処理するには16byteアラインが必要」という主張は判るが
AVXで256bit AVX512で512bitだからそれらも処理するのだろうか?
画像処理とか専用のアプリ内だけで社内ルールでやればよい事のように思う。
そもそも現行のPCのRAMなどのバスは64bitだ。128bitアラインにして高速化するのはCPUのキャッシュ内にデータがある間だけ。キャッシュを超えるデーターを扱うとなれば、SSE命令使おうが無駄な話になる。
メモリを無駄に使えば、それだけキャッシュから外れるまでの余裕が短くなるだけではないか?
さらに内臓メモリの限界もある。それを超えれば仮想記憶でHDD/SSDとスワップするわけで、それが速度を決めてしまう。 だから速度を考えるのならメモリは少しでも節約すべきだろう。
昔 音声認識をするのに8bitの符号で対数的な重みを付け 加算や掛算をテーブル引きで行った事がある。
それでもそこそこの結果が得られた。 当時は掛け算さえ遅かった時代なので速度目的だった。
今ではむしろ遅くなる。
しかし今の人工知能のメモリ消費を考えると 案外8bitの対数的符号は速度面でも有利化もしれない。
メモリ消費が少なければそれだけキャッシュから外れる可能性も、そしてPCのメモリスワップが起きる可能性も小さく出来るのだから。
でも16byteアラインはどうなんだろう?
「SSEで128bit を高速に処理するには16byteアラインが必要」という主張は判るが
AVXで256bit AVX512で512bitだからそれらも処理するのだろうか?
画像処理とか専用のアプリ内だけで社内ルールでやればよい事のように思う。
そもそも現行のPCのRAMなどのバスは64bitだ。128bitアラインにして高速化するのはCPUのキャッシュ内にデータがある間だけ。キャッシュを超えるデーターを扱うとなれば、SSE命令使おうが無駄な話になる。
メモリを無駄に使えば、それだけキャッシュから外れるまでの余裕が短くなるだけではないか?
さらに内臓メモリの限界もある。それを超えれば仮想記憶でHDD/SSDとスワップするわけで、それが速度を決めてしまう。 だから速度を考えるのならメモリは少しでも節約すべきだろう。
昔 音声認識をするのに8bitの符号で対数的な重みを付け 加算や掛算をテーブル引きで行った事がある。
それでもそこそこの結果が得られた。 当時は掛け算さえ遅かった時代なので速度目的だった。
今ではむしろ遅くなる。
しかし今の人工知能のメモリ消費を考えると 案外8bitの対数的符号は速度面でも有利化もしれない。
メモリ消費が少なければそれだけキャッシュから外れる可能性も、そしてPCのメモリスワップが起きる可能性も小さく出来るのだから。
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image
-
no image
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/11881812
この記事へのトラックバック