1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

FreeBSDでのCPUTYPEの指定方法

Last updated at Posted at 2021-03-11

はじめに

CPUTYPEの指定方法を調べてたら1、そういえば日本語ドキュメントを見ないな…と思い出して調査メモでも残そうと一念発起してみました。

この指定は基本的には継ぎ足しなので、bsd.cpu.mk 1の差分をOSバージョン毎に調べてみようと思ってます。取り急ぎ調べたバージョン明記するので参考にしてください。また大文字小文字の区別はあります。

最新のCPUを使用中で、この表に載ってない場合は、一番近い世代のCPUTYPEを指定してください。大抵のCPUは過去のアーキテクチャの機能を引き継いでる2ので、下手なコードは出力されないはずです。

さて。CPUTYPEとは何か、について、/etc/make.conf で使用中のCPUをこの変数で指定することで、コンパイル時にそのCPUに最適化されたコードが出力される、というものです。パッケージシステムで運用してる人には無関係となります3

注意事項

  • ここでリストアップされた、古いCPUアーキテクチャ向けにコンパイルできることを保証するものではありません。
  • 特にコンパイラがGCC4からLLVM移行に辺り、それまで動いていたCPUTYPEが動かなくなってる可能性があります。
  • 10.0-Rから調査しています。それより古いバージョンは調査しません。
  • 他のアーキテクチャについてはどうしよう。何か複雑なのと前後関係4が分からないから説明しにくいです。
  • 他のアーキテクチャだと消えてる(IA64、SPARC64)とか増えた(AARCH64、RISCV)とか色々。

CPUTYPE(amd64環境およびi386環境)

※調査済みバージョン: 13.0、12.2、12.1、12.0、11.4、11.3、11.2、11.1、11.0、10.4、10.3、10.2、10.1、10.0

  • 順番はなるべく最新の物が上に来るよう調査したい
  • amd64/i386両用CPUとi386のみのCPUは分離したい
  • SSE3対応した時期の Opteron って何だっけ?とか、Blue Lightning とか Cyrix とか NexGen とか溢れる思い出はどこに行った!…とか。
導入バージョン CPUTYPE(エイリアス名) CPUコード名(アーキテクチャ名) 備考
13.0 tigerlake Intel Tiger Lake
13.0 cooperlake Intel Cooper Lake
13.0 cascadelake Intel Cascade Lake
11.3 / 12.1 icelake-server Intel Ice Lake-SP
11.3 / 12.1 icelake-client Intel Ice Lake
11.2 / 12.1 cannonlake Intel Cannon Lake
11.3 / 12.1 skylake-avx512skx Intel Skylake]
11.2 skylake-avx512 Intel Skylake]
11.0 skylake Intel Skylake
11.0 broadwell Intel Broadwell
11.0 haswellcore-avx2 Intel Haswell
11.0 ivybridgecore-avx-i Intel IvyBridge
11.0 sandybridgecorei7-avx Intel SandyBridge
10.0 core-avx-i Intel IvyBridge
10.0 corei7-avx Intel SandyBridge
13.0 znver2 AMD Zen2
11.2 znver1 AMD Zen
11.0 bdver4 AMD Excavator
10.1 bdver3 AMD Steamroller
10.0 bdver2 AMD Piledriver
10.0 bdver1 AMD Bulldozer
13.0 btver2 AMD Jaguar
10.0 btver1 AMD Bobcat
11.3 / 12.1 tremont Intel Tremont
11.3 / 12.1 goldmont-plus Intel Goldmont+
11.2 goldmont Intel Goldmont
11.0 silvermontslm Intel Silvermont
10.1 slm Intel Silvermont
11.0 bonnellatom Intel Bonnell
10.0 atom Intel Bonnell
11.2 / 12.1 knm Intel Knights Mill
11.0 knl Intel Knights Landing
10.0 penryn Intel Penryn
10.0 core2 Intel Core2
10.0 westmere Intel Westmere
10.0 nehalemcorei7 Intel Nehalem
10.0 yonah Intel Yonah
10.0 prescottcore Intel Prescot
10.0 noconaprescott Intel Nocona amd64環境では prescottnocona として取り扱われる
10.0 pentium4p4 Intel Pentium 4
10.0 pentium4mp4m Intel Pentium 4M
10.0 pentium3p3 Intel Pentium 3
10.0 pentium3mp3m Intel Pentium 3M
10.0 pentium-mp-m Intel Pentium M
10.0 pentium2p2 Intel Pentium 2
10.0 pentiumproi686 Intel Pentium Pro FreeBSD13/i386の最低ライン
10.0 pentium-mmxi586/mmx Intel Pentium MMX
10.0 pentiumi586 Intel Pentium
10.0 i486 Intel i80486
10.0 i386 Intel i80386
10.0 opteron-sse3 AMD Opteron
10.0 athlon64-sse3 AMD Athlon64
10.0 k8-sse3 AMD K8
10.0 opteron AMD Opteron
10.0 amdfam10barcelona AMD K10
10.0 athlon64 AMD Athlon64
10.0 athlon-fx AMD Athlon FX
10.0 athlon-mp AMD Athlon MP
10.0 athlon-xp AMD Athlon XP
10.0 athlon-4 AMD Athlon 4
10.0 x86-64 AMD Opteron FreeBSD/amd64の最低ライン
10.0 k8 AMD K8
11.0 athlonk7 AMD Athlon
10.0 athlon AMD Athlon
10.0 athlon-tbird AMD Athlon Thunderbird
10.0 k7 AMD K7
10.0 k6 AMD K6
10.0 k6-2 AMD K6-2
10.0 k6-3 AMD K6-3
10.0 geode NSC Geode
10.0 k5 AMD K5 pentium と同じ扱い(エイリアスでない点は不明)
10.0 crusoe Transmeta Crusoe
10.0 c7 VIA C7 c3-m と同じ扱い
10.0 c3-2 VIA C3-2
10.0 c3 VIA C3
10.0 winchip2 Centaur WinChip 2
10.0 winchip2-c6 Centaur WinChip C6
  1. /usr/share/mk/bsd.cpu.mk 2

  2. 希に原点回帰するアーキテクチャはある。

  3. パッケージビルドシステム内で指定されたCPUTYPEでコンパイルされるため。

  4. 上方互換、下位互換の関係。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?