STMicroelectronicsは、同社子会社のPortland Group(PGI)がマルチコアx86プラットフォーム向けに最適化した「PGI CUDA C/C++コンパイラ(CUDA-x86)」を、2012年1月にリリース予定の「PGI 2012」と共に出荷することを発表した。同製品は、並列化を行うプログラマがAMDおよびIntelのCPUを最大限活用できる新しいCUDAコンパイラであり、x86+GPUアーキテクチャの統合並列プラットフォーム化に向けた重要なステップとなると同社では説明している。

CUDAは、NVIDIA製GPUの処理能力を利用することで演算性能を向上させる並列演算アーキテクチャで、今回発表されたCUDA-x86は、GPUだけではなく広範囲なシステムに対するプログラミング・モデルにまでCUDAの適用範囲を拡げるもの。

x86ホストに対するネイティブCUDA C/C++の最適化および並列化を行う他、x86ホスト上でのCUDA C/C++の低オーバヘッド・ネイティブ並列実行を実現する。また、1コアを使用して各CUDAスレッド・ブロックを実行し、同期化を自動的にできる限り排除する。さらにデバイス・カーネル関数を自動的にインライン化し、シェブロン構文を並列/ベクトル・ループに変換する。

また、新しいAVX命令のサポートを含め、AMD製およびIntel製最新プロセッサに対応。CUDA C/C++言語をAMD/Intel製の汎用マルチコアx86マイクロプロセッサ用ネイティブ並列プログラミング言語として処理するほか、NVIDIAのGPU用CUDA C/C++言語を完全にサポートしているため、CUDAアプリケーションのソース・コードを再コンパイルしてx86ホスト上で実行することが可能となる。

さらにNVIDIA GPUアクセラレータの有無に関わらず、x86ベースのワークステーション、サーバおよびクラスタ上で実行できるようにCUDAアプリケーションをコンパイルしたり、最適化を図ったりすることができるため、x86を対象としてコンパイルされたCUDA C/C++アプリケーションは、Intel/AMD製CPUの複数コアとストリーミングSIMD(Single Instruction Multiple Data)機能を使用して並列実行を実現することができるようになる。

なお、同製品は、1月にリリース予定の「PGI 2012バージョン12.1」の一部で、現行のPGIサブスクリプション・サービスのライセンスがあり、PGI Accelerator C/C++ライセンスの所有者は無料で利用することができる。PGI製品は、Linux、Apple Mac OS X、およびMicrosoft Windowsオペレーティング・システムに対応している。

さらに、GPUデバイス向けのPGI CUDA C/C++が2012年中旬にリリースされる予定で、「PGI Unified Binary」テクノロジにより、NVIDIAのGPUがある場合は使用し、GPUが無い場合はマルチコアx86をデフォルトで使用することが1つの実行バイナリで可能になる。