PGIコンパイラ ターゲット CPU プロセッサ
32ビットあるいは64ビットプロセッサを含む PGI コンパイラ製品がサポートするプロセッサの種別とその利用可能なハードウェア機能を以下に纏めました。 以下の表の中にある 'target' をコンパイルコマンドのオプションとして指定すると、指定された CPU の特性に応じた最適化が可能なクロス・コンパイルが可能となります。CPU target オプションの詳細は、こちらに説明しています。また、「クロスコンパイルの方法」については、こちらのページをご覧ください。
PGI コンパイラは、AMD 社の NUMA アーキテクチャにも「最適化」する機能を有するだけでなく、インテル社のUMAや最新の Core i7 系の NUMA アーキテクチャにも最適化可能なコンパイラです。
コンパイラ技術は、AMD64/Intel(R)64 のコード生成機能だけではなく、NUMA / UMA と言ったメモリアーキテクチャに対しても柔軟に最適化できる能力が求められています。PGI コンパイラは、 NUMA アーキテクチャに対しても最適化機能を有した「先頭を走るコンパイラ」です。
2011年11月に発売された AMD Bulldozer プロセッサに対応する Linux 上の開発環境 GNU binutil は、バージョン 2.20.51 以上ですのでご注意下さい。これ以前の binutil では、 その assembler にバグが存在します。Ubuntu 11.04 以上、Red Hat 6.2 以上、SUSE Linux Enterprise 11 Service Pack 2 以上となります。なお、Debian 6.0.x (Squeeze) はデフォルトでは対応しておりませんので、binutil のバージョンを個別にバージョンアップする必要があります。
PGI Workstation 2012 Supported Processors | |||||||||
---|---|---|---|---|---|---|---|---|---|
Supplier | CPU | -tp <target> |
Memory Address |
Floating Point HW | |||||
SSE1 | SSE2 | SSE3 | SSSE3 | SSE4 | ABM &SSE4a |
||||
Intel | Core i7/i5/i3 (Sandy Bridge) | sandybridge-64 | 64-bit | Yes | Yes | Yes | Yes | Yes | Yes |
Intel | Core i7/i5/i3 (Sandy Bridge) | sandybridge-32 | 32-bit | Yes | Yes | Yes | Yes | Yes | Yes |
Intel | Core i7/i5/i3 (Nehalem) | nehalem-64 | 64-bit | Yes | Yes | Yes | Yes | Yes | Yes |
Intel | Core i7/i5/i3 (Nehalem) | nehalem-32 | 32-bit | Yes | Yes | Yes | Yes | Yes | Yes |
Intel | Penryn | penryn-64 | 64-bit | Yes | Yes | Yes | Yes | Yes | No |
Intel | Penryn | penryn-32 | 32-bit | Yes | Yes | Yes | Yes | Yes | No |
Intel | Core 2 | core2-64 | 64-bit | Yes | Yes | Yes | Yes | Yes | No |
Intel | Core 2 | core2-32 | 32-bit | Yes | Yes | Yes | Yes | Yes | No |
Intel | Xeon, P4 EM64T | p7-64 | 64-bit | Yes | Yes | Yes | Yes | No | No |
Intel | Xeon, P4 EM64T | p7-32 | 32-bit | Yes | Yes | Yes | Yes | No | No |
Intel | Xeon/Pentium4 | p7-32 | 32-bit | Yes | Yes | No | No | No | No |
AMD | Bulldozer | bulldozer-64 | 64-bit | Yes | Yes | Yes | No | Yes | Yes |
AMD | Bulldozer | bulldozer-32 | 32-bit | Yes | Yes | Yes | No | Yes | Yes |
AMD | Six-core Istanbul | istanbul-64 | 64-bit | Yes | Yes | Yes | No | Yes | Yes |
AMD | Six-core Istanbul | Istanbul-32 | 32-bit | Yes | Yes | Yes | No | Yes | Yes |
AMD | Opteron/QuadCore | shanghai-64 | 64-bit | Yes | Yes | Yes | No | No | Yes |
AMD | Opteron/QuadCore | shanghai-32 | 32-bit | Yes | Yes | Yes | No | No | Yes |
AMD | Opteron/QuadCore | barcelona-64 | 64-bit | Yes | Yes | Yes | No | No | Yes |
AMD | Opteron/QuadCore | barcelona-32 | 32-bit | Yes | Yes | Yes | No | No | Yes |
AMD | Opteron/Athlon64 | k8-64 | 64-bit | Yes | Yes | Yes | No | No | No |
AMD | Opteron/Athlon64 | k8-32 | 32-bit | Yes | Yes | Yes | No | No | No |
AMD | Opteron Rev. E/F | k8-64e | 64-bit | Yes | Yes | Yes | No | No | No |
AMD | Opteron Rev. E/F | k8-32 | 32-bit | Yes | Yes | No | No | No | No |
AMD | Turion64 | k8-64e | 64-bit | Yes | Yes | Yes | No | No | No |
AMD | Turion64 | k8-32 | 32-bit | Yes | Yes | No | No | No | No |
AMD | Athlon XP/MP | athlonxp | 32-bit | Yes | No | No | No | No | No |
Intel | Pentium III | piii | 32-bit | Yes | No | No | No | No | No |
AMD | Athlon | athlon | 32-bit | No | No | No | No | No | No |
AMD | K6 | k6 | 32-bit | No | No | No | No | No | No |
Intel | Pentium II | p6 | 32-bit | No | No | No | No | No | No |
Generic | Generic x86 | p5 or px | 32-bit | No | No | No | No | No | No |
Intel(R)社のプロセッサにも、AMD社のプロセッサにも、どちらにも最適化可能
PGI コンパイラの大きな特長は、AMD 社の AMD64 プロセッサとインテル社の インテル64(EM64T) プロセッサ、それぞれの CPU のマイクロアーキテクチャに応じた最適化を行うことができるコンパイラであることです。詳細は、こちらをご覧ください。
特に、インテルプロセッサと AMDプロセッサでは、メモリアクセス、キャッシュ最適化に係る部分の最適化は大きく異なるため、インテル社製コンパイラで生成された Intel64 コードは、AMD64 マシン上では性能が大きく劣化する場合があります。AMD プロセッサ用のコンパイラは、 PGI 社のコンパイラをお求めください。 例えば、Intel(R) 64 の場合、CPU ターゲットを指定するコマンド・ライン・オプションである -tp nehalem-64 等を指定することで、Intel(R)64 である Nehalem (Core i7 等)に特化した最適化を行います。PGI コンパイラは、AMD64 ネイティブな最適化と Intel(R)64用の最適化を切り替えることが可能なクロス・コンパイル機能を有します。従いまして、PGI コンパイラを利用することで、将来、ご使用システムを Intel64 もしくは AMD64 のどちらかの CPU プラットフォームに変更したとしても、共通コンパイラ基盤としてどちらのプラットフォームに対してもご利用いただけます。
Intel64 は、基本的に AMD64 アーキテクチャとの互換を図り、64bit命令(演算、アドレッシング)を追加した技術です。従って、Intel64は、 AMD64 とバイナリレベルで互換性が保たれています。PGI コンパイラは、最新のインテル社のプロセッサを常にサポートします。