3

RDTSCP を使用して LFENCE;RDTSC シーケンスを置き換え、またプロセッサ ID を取得して、スレッドが別の CPU に再スケジュールされた後に TSC 値を比較していることがわかるようにします。

古いマシンで RDTSCP を実行しないようにするために、(libcpuid を使用して) CPUID をチェックした後に RDTSC にフォールバックします。CPUID 呼び出しの代わりに、gcc の複数ターゲット属性機能を使用してみたいと思います。

int core2_func (void) __attribute__ ((__target__ ("arch=core2")));

gcc マニュアルには、多数の CPU ファミリ (haswell、skylake など) がリストされています。最初に RDTSCP を導入した CPU ファミリを見つけるにはどうすればよいですか?

4

1 に答える 1

1

K8 ハンマー サポート以降のすべての AMD プロセッサRDTSCP

Intel プロセッサでRDTSCPは、Nehalem 以降、Silvermont 以降、Knights Landing 以降でサポートされています。

于 2019-02-21T19:50:33.400 に答える