パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

Intelが28コア・5GHz駆動CPUのデモを披露、年末までに投入へ」記事へのコメント

  • 素人の質問です。

    • by annoymouse coward (11178) on 2018年06月06日 18時29分 (#3420573) 日記

      64ビット版のLinuxなら,デフォルトで64個までコアを認識します

      認識できるコアの上限は,Linuxカーネルのソースコード中の NR_CPUS という定数で決まります.
      またNR_CPUSの上限はNR_CPUS_RANGE_ENDという定数になっています

      定義ファイルはこれです
      https://github.com/torvalds/linux/blob/master/arch/x86/Kconfig [github.com]
      このようにx86系で64ビットならNR_CPUSのデフォルト値は64です.

      そしてNR_CPUS_RANGE_ENDは8192なので,NR_CPUSを変更してカーネルをビルドしなおせば
      8192個まではコアを認識するようになります

      これは他のCPUでも大体同じでCPUが N ビットならアーキテクチャによらず認識するコア数も N になります.

      これにはつぎのような理由が有ります.
      カーネルの中にはコアをビット単位で管理している部分があります.
      その処理ではN個コアがあると,Nビットの変数が一つ必要になります.
      もしCPUが64ビットなら,一命令,一レジスタで管理できるビット数の上限は64になります
      つまり1個から64個まではコストは同じ.ということでNR_CPUSのデフォルト値は64に設定されています.

      親コメント
      • by Anonymous Coward

        なーぁるほど。よくわかりました。ありがと。

私は悩みをリストアップし始めたが、そのあまりの長さにいやけがさし、何も考えないことにした。-- Robert C. Pike

処理中...