さまざまな課題をオールインワンで解決! インテルが進める「oneAPI」とは
現在、企業は日々、生み出された大量のデータを蓄積している。そのデータをビジネス価値につなげていくには、AIの活用が不可欠になる。大手半導体メーカーのインテルでは、AIとデータ分析のワークロードに焦点を合わせ、ハードウェアおよびソフトウェア、エコシステムの提供を行っている。
そんなインテルが進めているのが「oneAPI」プロジェクトだ。昨今、AI関連の処理はもちろん、ゲームやシミュレーションでも高度な処理が求められている。例えばシミュレーションも従来であれば、CPUの中で処理していたが、今はGPUやFPGAを使う方が有効だという方向にシフトしてきている。このようなデータ処理のワークロードは多様性に富んでおり、「CPUだけ」という単一のアーキテクチャではすべてのワークロードに対応するのは困難になっている。
そこでCPU、GPU、FPGAなどに配置されたスカラー、ベクトル、行列、および空間というSVMSアーキテクチャの組み合わせに対応し、それらのアーキテクチャのパフォーマンスを最大限引き出すソフトウェアが求められるが、現在は各アーキテクチャに向けた個別のプログラミング・モデルとツールチェーンが必要になっている。これらアーキテクチャ向けプログラミングの課題を解決するのが、「oneAPI」である。
oneAPIは複数のアーキテクチャ向けソフトウェア開発を容易にし、かつ最適なハードウェアを自由に選択できるクロスアーキテクチャ・プログラミング・モデルである。「1つの開発ツールからいろんなソリューションを展開するという意味がこの名前には込められている」と、インテルの開発用ソフトウェアの正規代理店として、国内での販売を展開しているエクセルソフト株式会社の黒澤一平氏は語る。
oneAPIの特徴はそれだけではない。業界標準とオープンな仕様に基づいており、複数のアーキテクチャとベンダーでコードを再利用することも可能だ。もちろん最新のハードウェアの最先端のパフォーマンス機能を活用できる。
効率的なソフトウェア開発を支援するツールキット
oneAPIでは効率的なソフトウェア開発を可能にするため、さまざまなツールキットを用意している。「oneAPIベース・ツールキット」はインテルのCPU、GPU、FPGA でハイパフォーマンスなアプリケーションを開発するための基本ツールとライブラリーの基本セットであり、対象は「さまざまな業界の開発者」だそうだ。
これをベースにドメイン固有のアドオンツールキットとして、「oneAPI HPCツールキット」「oneAPI IoTツールキット」「oneAPI レンダリングツールキット」を用意。さらに、AI補助ツールとして、「AIアナリティクス・ツールキット」、エッジからクラウドまでハイパフォーマンス推論とアプリケーションをデプロイするための「OpenVINO ツールキット」などを提供している。
これらのツールキットは従来、インテルが提供していた「Parallel Studio XE」の後継である。最大の違いは、「これまでの製品は主な開発対象がCPU向けで、今回はGPU、FPGAやその他のアクセラレターに対応している点」と黒澤氏は語る。つまり、oneAPIツールキットでは、実行できる状態のものをユーザーに作ってもらえるようにするため、コンパイラーを提供している。それが「データ並列C++(DPC++)/C++コンパイラー」だ。
インテルでは、Fortran向けにもコンパイラーを開発しているが、製品化はされていないとのこと。このDPC++は、LLVMというJavaのような中間形式のバイナリーを生成することで、実行時に搭載されているCPUやGPUなどを判定し、ハードウェアを最大限利用できるよう並列プログラミングの生産性とパフォーマンスを提供する。
また、DPC++は従来までのC++言語に加え、クロノスグループが作成したSYCL形式のC++をサポートしている。「今までのコンパイラーでも動くのはもちろん、最適化してSYCLの機能を追加して使うこともできる。これまでの資産を有効活用できるようになっている」と黒澤氏は言う。