CodeZine(コードジン)

特集ページ一覧

インテルが新たに進める「oneAPI」とは? 多様化するアーキテクチャで最大限のパフォーマンスを発揮

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2021/01/28 12:00

 今や多くの企業が取り組んでいるデジタルトランスフォーメーション(DX)。この言葉が表しているように、ビジネスの世界ではAIを活用したデータドリブン経営が主流になりつつある。つまり膨大なデータをいかに収集、分析し、ビジネスに生かしていけるかが、企業が成長するカギを握るようになっている。このように、よりデータ中心のワークロードは多様化しており、それに伴いデータを処理するコンピューティング・アーキテクチャも多様化している。そんな多様化するアーキテクチャにおいて、最大限のパフォーマンスを引き出すことを容易にするソフトウェアソリューションがインテルから登場した。それが「oneAPI」ツールキットだ。

目次

さまざまな課題をオールインワンで解決! インテルが進める「oneAPI」とは

 現在、企業は日々、生み出された大量のデータを蓄積している。そのデータをビジネス価値につなげていくには、AIの活用が不可欠になる。大手半導体メーカーのインテルでは、AIとデータ分析のワークロードに焦点を合わせ、ハードウェアおよびソフトウェア、エコシステムの提供を行っている。

 そんなインテルが進めているのが「oneAPI」プロジェクトだ。昨今、AI関連の処理はもちろん、ゲームやシミュレーションでも高度な処理が求められている。例えばシミュレーションも従来であれば、CPUの中で処理していたが、今はGPUやFPGAを使う方が有効だという方向にシフトしてきている。このようなデータ処理のワークロードは多様性に富んでおり、「CPUだけ」という単一のアーキテクチャではすべてのワークロードに対応するのは困難になっている。

 そこでCPU、GPU、FPGAなどに配置されたスカラー、ベクトル、行列、および空間というSVMSアーキテクチャの組み合わせに対応し、それらのアーキテクチャのパフォーマンスを最大限引き出すソフトウェアが求められるが、現在は各アーキテクチャに向けた個別のプログラミング・モデルとツールチェーンが必要になっている。これらアーキテクチャ向けプログラミングの課題を解決するのが、「oneAPI」である。

oneAPI
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++コンパイラー」だ。

データ並列C++(DPC++)/C++コンパイラー
データ並列C++(DPC++)/C++コンパイラー

 インテルでは、Fortran向けにもコンパイラーを開発しているが、製品化はされていないとのこと。このDPC++は、LLVMというJavaのような中間形式のバイナリーを生成することで、実行時に搭載されているCPUやGPUなどを判定し、ハードウェアを最大限利用できるよう並列プログラミングの生産性とパフォーマンスを提供する。

 また、DPC++は従来までのC++言語に加え、クロノスグループが作成したSYCL形式のC++をサポートしている。「今までのコンパイラーでも動くのはもちろん、最適化してSYCLの機能を追加して使うこともできる。これまでの資産を有効活用できるようになっている」と黒澤氏は言う。


関連リンク

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

あなたにオススメ

著者プロフィール

  • 中村 仁美(ナカムラ ヒトミ)

     大阪府出身。教育大学卒。大学時代は臨床心理学を専攻。大手化学メーカー、日経BP社、ITに特化したコンテンツサービス&プロモーション会社を経て、2002年、フリーランス編集&ライターとして独立。現在はIT、キャリアというテーマを中心に活動中。IT記者会所属。趣味は読書、ドライブ、城探訪(日本の城)。...

バックナンバー

連載:開発生産性向上に寄与するツール大研究

もっと読む

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5