Linux memo 2020/07/26

● ぼくのかんがえたさいきょうのmemcpy()
※ただしC言語に限る
https://github.com/rarul/algorithm_bench/blob/master/memcpy/common/memcpy.c
- 実用上は32bitか64bitの2か4のループアンローリングくらいで十分っぽい?
- gccの-O3だとヘタに自分で展開するより早かったりする、勝手にループアンローリングやってる?
- __int128のgcc拡張が使えるという知見を得た(gcc-4.4.7は使えなかった)
- alignment合ってなくてもCPUでなんとかしちゃうx86ずるい
- x86_64は、alignment乗ってると早いし、乗ってなくてもちゃんと動くし、alignmentチェックする価値がなさそう
- __int128は、x86_64でもalignmentエラーで落ちた
- 結局glibcのmemcpy()が一番早い、次点でgcc -O3
- asm使った最適化は猛者の総ツッコミが来そうなので語らないことにする

● その他
ネタはあったはずなのに最近やる気が出なくて作業が進まない...

このブログ記事について

このページは、らるるが2020年7月27日 06:02に書いたブログ記事です。

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

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

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

月別 アーカイブ

ウェブページ

Powered by Movable Type 7.9.0