uOP$ に乗ってるかどうかの違いなんじゃないの、と指摘されました。uOP$ のことすっかり忘れてました。Sandy Bridge の uOP$ の解説記事はこんなのがあります(英語)
Read the rest of this entry
命令ベンチマークツールでループ中の命令数を増やすとスループットが下がる件にからんで、パフォーマンスを計測する方法一般についてちょろっとググったら、Linux の perf コマンドを使う記事を見つけました。ってこれよく見たら x86/x64 最適化勉強会で聞いたはずじゃん。
これの 3.2 の「アーキテクチャの理解」のところで、命令列が長いと IPC が下がる、というようなことが書いてあります(マイクロアーキテクチャは同じく Sandy Bridge)。
まあ、他の人のところでも同様のことが起こる、ということが(より詳細なデータとともに)分かっただけであって、なんで長い依存列があると遅くなるのかはよく分からんのですが。
最近、命令ベンチマークツールをもうちょっと汎用的に組めるように作りなおしているのですが、さっき試しに計測したら Sandy 上で pmovzxbw のスループットが 0.5 と出てきました。以前のツールで測った時は 1 になっていました。あれれと思って Intel の最適化マニュアルを見たところ、0.5 が正しいようです。あとよく見たら palignr も正しくはスループット 0.5 で、これまた以前のツールでは間違った値が出てきています。
Read the rest of this entry
そういえば調べてませんでしたが、動作することを確認しました。
なお、Windows 10 をアップグレードインストールした場合、アップグレード直後は使えないことが予想されます(Windows 10 に限りませんが)。これは、Ut Video Codec Suite は DLL をシステムディレクトリにインストールしているからです。改めて Ut Video Codec Suite を(再)インストールすると使えるようになるはずです。
手持ちのレポジトリの多くを git 化したわけですが、TortoiseGit で git add するけど git commit は(まだ)しない、という操作のやり方が分かりません。前々職とかで git を使っていた時は全部コマンドラインでやってたんで。
一応、エクスプローラ上でファイルを右クリックすると「Git Add all files now」というのが出てきますが、これは TortoiseGit が出しているのではなく、その下層に位置する Git for Windows が出しているもののようです。この操作をした時に、TortoiseGit の動作と矛盾が生じないかどうか心配があります。
TortoiseGit は TortoiseSVN と同じ感じで使えるようにわざとこの辺を隠ぺいしているんですかね…?
なお、直接 Git Bash 使えばいいじゃん、という話はありますが、こちらの調査はまだやっていません。