インストゥルメンテーション

全プロセッサメーカーはインストゥルメンテーションツールを用意すべき。

世界のIntelが公開してる pin をご覧ください http://software.intel.com/en-us/articles/pin-a-dynamic-binary-instrumentation-toolIntelがつくったvalgrindみたいなツール、Intel Inspectorはこれの上に実装されている。


CUDAのインストゥルメンテーションライブラリは公開されてないが、プロファイラや上のmemcheckの挙動を見るに、SASSレベルでのインストゥルメンテーションが存在すると思われる。


何故これが重要なのかというと、これがあると、機械語しか存在しないプログラムがどういう挙動をしてるか、というのが調べられるんだよね。
キャッシュサイズとか分岐予測変えたときのシミュレーションとかもできる。


つまり、こういうのを用意してるプロセッサメーカーは、ちゃんと実際のプログラム動かしてデータ集めてプロセッサ開発してるということである。
用意してないプロセッサメーカーは、脳内シミュレーションだけでアーキテクチャを決めてる可能性がある。