インストゥルメンテーション
全プロセッサメーカーはインストゥルメンテーションツールを用意すべき。
世界のIntelが公開してる pin をご覧ください http://software.intel.com/en-us/articles/pin-a-dynamic-binary-instrumentation-tool。Intelがつくったvalgrindみたいなツール、Intel Inspectorはこれの上に実装されている。
CUDAのインストゥルメンテーションライブラリは公開されてないが、プロファイラや上のmemcheckの挙動を見るに、SASSレベルでのインストゥルメンテーションが存在すると思われる。
何故これが重要なのかというと、これがあると、機械語しか存在しないプログラムがどういう挙動をしてるか、というのが調べられるんだよね。
キャッシュサイズとか分岐予測変えたときのシミュレーションとかもできる。
つまり、こういうのを用意してるプロセッサメーカーは、ちゃんと実際のプログラム動かしてデータ集めてプロセッサ開発してるということである。
用意してないプロセッサメーカーは、脳内シミュレーションだけでアーキテクチャを決めてる可能性がある。