インテル® C++ コンパイラー 17.0 デベロッパー・ガイドおよびリファレンス
関数のプロセッサー固有バージョンを宣言できるようにします。
Windows®: __declspec(cpu_specific(cpuid)) |
Linux*: __attribute__((cpu_specific(cpuid))) |
cpuid |
設定可能な値は以下のとおりです。 atom: インテル® ストリーミング SIMD 拡張命令 3 補足命令 (インテル® SSSE3) 対応インテル® Atom™ プロセッサー atom_sse4_2: インテル® ストリーミング SIMD 拡張命令 4.2 (インテル® SSE4.2) 対応インテル® Atom™ プロセッサー atom_sse4_2_movbe: インテル® ストリーミング SIMD 拡張命令 4.2 (インテル® SSE4.2) および MOVBE 命令対応インテル® Atom™ プロセッサー core_2_duo_sse4_1: インテル® ストリーミング SIMD 拡張命令 4.1 (インテル® SSE4.1) 対応インテル® 45nm Hi-k 次世代インテル® Core™ プロセッサー core_2_duo_ssse3: インテル® Core™2 Duo プロセッサーおよびインテル® ストリーミング SIMD 拡張命令 3 補足命令 (インテル® SSSE3) 対応インテル® Xeon® プロセッサー core_2nd_gen_avx: インテル® アドバンスト・ベクトル・エクステンション (インテル® AVX) 対応第 2 世代インテル® Core™ プロセッサー・ファミリー core_3rd_gen_avx: RDRND 命令を含むインテル® アドバンスト・ベクトル・エクステンション (インテル® AVX) 対応第 3 世代インテル® Core™ プロセッサー・ファミリー core_4th_gen_avx: RDRND 命令を含むインテル® アドバンスト・ベクトル・エクステンション 2 (インテル® AVX2) 対応第 4 世代インテル® Core™ プロセッサー・ファミリー core_4th_gen_avx_tsx: RDRND 命令を含むインテル® アドバンスト・ベクトル・エクステンション 2 (インテル® AVX2)、およびインテル® トランザクショナル・シンクロナイゼーション・エクステンション (インテル® TSX) 対応第 4 世代インテル® Core™ プロセッサー・ファミリー core_5th_gen_avx: RDSEED および ADX (Multi-Precision Add-Carry Instruction Extensions) 命令を含むインテル® アドバンスト・ベクトル・エクステンション 2 (インテル® AVX2) 対応第 5 世代インテル® Core™ プロセッサー・ファミリー core_5th_gen_avx_tsx: RDSEED および ADX (Multi-Precision Add-Carry Instruction Extensions) 命令を含むインテル® アドバンスト・ベクトル・エクステンション 2 (インテル® AVX2)、およびインテル® トランザクショナル・シンクロナイゼーション・エクステンション (インテル® TSX) 対応第 5 世代インテル® Core™ プロセッサー・ファミリー core_aes_pclmulqdq: AES (Advanced Encryption Standard) 命令およびキャリーなし乗算命令対応インテル® Core™ プロセッサー core_i7_sse4_2: インテル® ストリーミング SIMD 拡張命令 4.2 (インテル® SSE4.2) 対応インテル® Core™ i7 プロセッサー generic: インテル製のその他の IA-32 またはインテル® 64 プロセッサーまたは互換プロセッサー mic: インテル® メニー・インテグレーテッド・コア (インテル® MIC) アーキテクチャー mic_avx512: インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) 基本命令、競合検出命令、指数および逆数命令、プリフェッチ命令、および RDSEED および ADX (Multi-Precision Add-Carry Instruction Extensions) 命令を含むインテル® アドバンスト・ベクトル・エクステンション 2 (インテル® AVX2) 対応第 2 世代インテル® Xeon Phi™ プロセッサー・ファミリー。 この設定は、インテル® Xeon Phi™ コプロセッサー (開発コード名 Knights Landing) をターゲットとするインテル® 64 アーキテクチャーでのみ利用できます。 pentium: インテル® Pentium® プロセッサー pentium_4: インテル® Pentium® 4 プロセッサー pentium_4_sse3: インテル® ストリーミング SIMD 拡張命令 3 (インテル® SSE3) 対応インテル® Pentium® 4 プロセッサー、インテル® Core™ Duo プロセッサー、インテル® Core™ Solo プロセッサー pentium_ii: インテル® Pentium® II プロセッサー pentium_iii: インテル® Pentium® III プロセッサー pentium_iii_no_xmm_regs: インテル® Pentium® III プロセッサー (XMM レジスターなし) pentium_m: インテル® Pentium® M プロセッサー pentium_mmx: インテル® MMX® テクノロジー対応インテル® Pentium® プロセッサー pentium_pro: インテル® Pentium® Pro プロセッサー |
このキーワードを使用して、各関数のプロセッサー固有バージョンを宣言できます。
この機能は、IA-32 またはインテル® 64 アーキテクチャー・ベースのインテル® プロセッサーでのみ利用できます。 インテル以外のプロセッサーでは利用できません。 手動プロセッサー・ディスパッチ機能を使用してビルドしたアプリケーションは、互換プロセッサーよりもインテル® プロセッサーでより高度に最適化されることがあります。
最適化に関する注意事項 |
---|
インテル® コンパイラーでは、インテル® マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。これには、インテル® ストリーミング SIMD 拡張命令 2、インテル® ストリーミング SIMD 拡張命令 3、インテル® ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します。インテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、インテル® マイクロプロセッサーでの使用を前提としています。インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル® マイクロプロセッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー・リファレンス・ガイドを参照してください。 注意事項の改訂 #20110804 |