Intelは10月4日、「インテル デベロッパー・カンファレンス/ソリューション・デイ 2019」を開催した。定員700人の会場であるが、満員の盛況であった。
Intelは、汎用CPU、プログラマブルなデータ並列アクセラレータ(GPU)、FPGA、ドメインで最適化されたアクセラレータ(ニューラルネットワークプロセサ)といった各種のプロセサ製品を持っている。
データセンタとして要求される高い性能と柔軟なオプションを提供するためには必要な品揃えであるが、性格の違うこれらの4種のプロセサに対して異なる言語やツールを使ってソフトウェアを開発することは開発エンジニアの負担が大きい。そこで考えられたのが「oneAPIプロジェクト」である。
このoneAPIプロジェクトについて、インテルのシニア・プロダクト・マーケティング・エンジニアのMike Lee氏が説明を行った。
Intelは、汎用CPU、GPU(現在の統合型GPU、あるいは開発中のXeグラフィックス)、FPGA、ニューラルネット用のアクセラレータ(Nervana)という4種のプロセサを持っている。
しかし、これらのプロセサの開発環境は異なっており、それらに習熟するのは開発エンジニアの負担が大きいし、同じ機能のプログラムをプラットフォームごとに開発するのは多額の開発費を必要とする。
oneAPIプロジェクトはIntel oneAPI言語と最適化されたライブラリで並列処理を表現し、その上に最適化されたミドルウェアやフレームワークを載せる。さらに、その上に最適化されたアプリケーションが載るという構造で実現される。なお、oneAPIツールは共通で動作する。
そして、oneAPIはCPU、GPU、FPGA、AIプロセサをサポートし、業界標準およびオープン仕様ベースで作られる。そして、OpenMPやMPIなどとの相互運用性を維持するので既存のHPC環境との接続も可能である。
oneAPI製品は、データ並列C++で直接記述するやり方とoneAPIライブラリを使って記述するというやり方がある。oneAPIライブラリの組み合わせで実現できれば開発は容易であるが、それでは機能が足りない場合にはデータ並列C++で記述することになる。どちらの方法で作っても、1つのソースからCPU、GPU、AI、FPGA用のコードを生成することができる。
データ並列C++は標準ベースのクロスアーキテクチャ言語である。データ並列C++では使い慣れたC++と同じ構文が使えるので、C++での記述と同等の生産性が得られる。そして、OpenGLやOpenCLを開発したKhronos GroupのSYCLを組み込むことでデータ並列処理とヘテロジニアスプログラミングを行うことができるようになっている。
コンパイラの実装としては標準的に使われているClangとLLVMを使っている。
IntelのMath Kernel Library(MKL)は高性能ライブラリとして知られており、この性能、品質をCPUだけでなく、GPU、AI、FPGAプロセサのライブラリについても実現していく。そして、MKLだけではなく、新しい用途であるディープニューラルネットワーク向けのMKL-DNNやデータアナリティック向けのIntel DAALライブラリも開発していく。
そして、現製品で高い評価を得ているIntel VTuneやIntel AdvisorはGPU、FPGA、AIをサポートするように拡張して行く。
まとめであるが、データセントリックなコンピューティングには、CPUだけでなく、GPU、FPGA、AIプロセサなどが必要となる。IntelのoneAPIはCPUと各種のアクセラレータのプログラミングを統一し、開発者の生産性を高めると同時に、妥協のない性能も提供する。
また、oneAPIは業界標準規格およびオープン仕様ベースで他社の協力を得てエコシステムを確立していく。そして、oneAPIは既存のHPCツールと相互運用を可能とする造りとして行くという。
なお会場では、2019年11月にベータ版のoneAPIが公開されることが発表された。
1つのソースからCPU、GPU、FPGA、AIといったアーキテクチャが大きく異なるプロセサ用のアプリケーションを自動(あるいはAdvisorを使って半自動)で作るというIntelのoneAPIプロジェクトは、大きな挑戦である。これが成功すれば、マルチアーキテクチャのプロセサ群を使ったシステムのプログラム開発が容易になり、大きなメリットが得られる。
しかし、マルチアーキテクチャのアプリケーションが自動で作れるかどうかは、正直言って分からない。自動でできたとしても妥協のない性能が得られなければ、そのアーキテクチャに合ったアルゴリズムに作り替える必要が出ることも起こる。そうなると、oneAPIにしても開発工数はあまり減らないかもしれない。
NVIDIAのJensen Huang CEOは、NVIDIAのQ2の決算発表の席で、マルチコア化、マルチGPU化は大変な作業で、プログラミングはPowerPointスライドを作るほど簡単ではないとoneAPIを皮肉っている。