2010-12-13 10 views
0

Web上のWindows、Linux、OSXの答えは簡単ですが、AIX(POWER)、HP-UX(Itanium)、Solaris(SPARC)などの市販のUNIXオペレーティングシステムではどうでしょうか。偽のキャッシュライン共有コードを試すことは、私が探している答えではありません。C/C++プログラムから市販のUNIX OSでキャッシュラインサイズを取得する方法は?

編集:CPUアーキテクチャが追加されました。

答えて

2

パフォーマンスを最適化しようとしている場合、ベンチマークはまさに​​実行する必要があります。たとえば、ATLASを参照してください。

パフォーマンスを最適化しようとしていないのであれば、なぜキャッシュラインのサイズに気を配りますか、ライン数と結合性には注意してください。

どのCPUアーキテクチャをサポートする必要がありますか?

+0

私は間違いなくベンチマークについて同意します!私が誤ったキャッシュライン共有を試したくないと言ったのは、実験は製品のキャッシュラインサイズを調べる方法ではなく、システムコールまたはインラインasmコールを好むでしょう。 – okun

0

さまざまなシステムやアーキテクチャでこの種の情報を提供するhwlocライブラリ(BSDライセンス)を見ることができます。コマンドラインツールlstopoまたは提供されたAPIを使用できます(documentationを参照)。

あなたがそのコマンドを使用することができますSolarisの
2

(SPARCおよびx86アーキテクチャの両方で):

$ prtpicl -v -c cpu | grep -i cache-line-size 
    :l1-dcache-line-size 0x40 
    :l1-icache-line-size 0x40 
    :l2-cache-line-size 0x40 
関連する問題