ウェブサイト検索

インテルは、非常に重要な「ネクスト クリック ダウン」として oneAPI を推進します


Python で働くデータ サイエンティストからアセンブリ言語で苦労する人まで、Nvidia の CUDA に代わるオープンで高性能な代替手段が必要だと Intel の Joe Curley 氏は言います。

「生成型」人工知能の台頭は、すべてスケーリング、つまりより良い結果を得るためにコンピューター プログラムにリソースを追加するという考え方に関係しています。 OpenAI の共同創設者で主任研究員の Ilya Sutskever 氏は、ChatGPT を作成する会社を設立したとき、「大きいことは良いことだという非常に強い信念を持っていました」と述べています。

コンピューティングの規模がますます大きくなるというこの考えは、AI 用の最も強力なチップの開発競争につながりました。これには、Nvidia の新しい GPU だけでなく、ベンチマーク テストで目覚ましい結果を示した Intel の Habana Labs も含まれます。 Advanced Micro Devices、Cerebras Systems などのスタートアップ企業も含まれます。

チップの開発ラッシュにより、非常に現実的な問題が生じています。開発者は、独自の機能や独自のプログラミング環境を備えたさまざまな種類のチップが拡大する世界に向けてどのように開発すればよいのでしょうか?

「私たちは GPU を持っています、TPU を持っています、FPGA を持っています。これらはすべて、市場ではさまざまな素晴らしい設計ポイントに到達します。しかし、開発者のエクスペリエンス面について考えると、それは次のようなものです。 、どうやってプログラムするの?」 Intelの副社長兼ソフトウェア製品およびエコシステム担当ゼネラルマネージャーのJoe Curley氏はZDNETのインタビューでこう述べています。

チップは常に、それらのチップを使用するために利用できる開発者ツールに依存します。どんなに優れたチップであっても、書き込むものがなければ単なるシリコンの山です。

Intel の答えは、オープンソースのプログラミング仕様である oneAPI です。そのソース コードは GitHub に投稿されており、開発者がすべてのチップの詳細を知らなくても、多数の種類のチップの並列処理を実現できるようにすることを目的としています。

先週は、この仕様が Linux Foundation の Joint Development Foundation が主催する Unified Acceleration Foundation (UXL) として再策定されることが発表され、oneAPI にとって重要な週でした。 UXL には、ARM ホールディングス、クアルコム、富士通、サムスン、そして Google といったチップ業界の他の大手企業が設立の「運営メンバー」として名を連ねています。

UXLの運営委員会責任者であるロッド・バーンズ氏は、先週のUXLの発表を「ヘテロジニアス・コンピューティングにとって極めて重要な瞬間」であると述べた。

インテル副社長ジョー・カーリー

「All oneAPI は、共通の言語と共通のライブラリ インターフェイスを通じてさまざまなブランドのアクセラレータをプログラムできるようにする共通の抽象化レイヤーを作成しようとするソフトウェア プログラミング モデルです」と Curley 氏は述べています。

インテルは、2020 年 12 月からオープンソース仕様の独自実装を出荷しています。oneAPI のコンポーネントには、DPC++ と呼ばれるクロスプラットフォーム並列化言語が含まれています。これは、C++ 上に構築された SYCL と呼ばれるオープンソース プログラミング言語を適応させたものです。クロノスグループが運営するプログラミング言語です。

昨年6月、Intelは並列コンパイラのサプライヤーであるスコットランド・エディンバラの新興企業CodePlayを買収した。この契約により、インテルは SYCL のクロスデバイス コンパイルに関する専門知識を得ることができました。

oneAPI には、行列乗算プリミティブを高速化するための、さまざまな関数 (たとえば、oneDNN など) のライブラリも用意されています。

oneAPI の仕様の詳細については、テクノロジーの仕様ページをご覧ください。

コンパイラ テクノロジとライブラリは、AI プログラミングへのさまざまなアプローチを提供します。 1 つは、データ サイエンティストの立場から来て、PyTorch や TensorFlow などの一般的な AI フレームワークから単純に下位に作業し、ライブラリを使用してそのコードを並列化する方法です。

カーリー氏によれば、oneAPI のポイントは、これまで標準化されていなかった並列プログラミングの連続体の一部を「ターゲットにする」ことだという。

カーリー氏によると、並列コンピューティングでは、「完全に抽象化された言語である Python から始めて、アクセラレーションにアクセスできるライブラリ インフラストラクチャを経由する」ことが多く、すべてはデータ サイエンティストの内部で行われるとカーリー氏は述べています。スペクトルの対極では、C++ または Fortran のプログラマは、GPU 用にコードを並列化するためにコンパイラに明示的なヒントを与えます。」

「oneAPI が登場するのは、次のクリックのようなものです。つまり、アクセラレーターに書き込んでいることがわかっており、アクセラレーターを使用することになることがわかっているので、そのデバイスをターゲットにしたいのですが、最適なコードを書きたいと思っており、実際にはパフォーマンスを重視しています」とカーリー氏は言いました。

「まさに、ここが oneAPI のようなアイデアに陥るところです。そして重要なのは、連続体のその部分では標準化の取り組みが成功したことがないということです」と彼は言いました。 AI のフレームワーク構築を支配している Nvidia の CUDA がありますが、これはオープンではありません。

「CUDA は企業が所有する言語であり、彼らには企業の関心があり、それをうまく活用していると確信していますが、彼らの関心は多様性のあるコミュニティを構築することではありません」と Curley 氏は述べました。

「OpenCL はこれに挑戦し、いくつかの成功を収めましたが、多くの開発者は OpenCL が扱いにくいと感じていました。ヘッダー ファイルが多く、それほど生産的ではありませんでした。」

同じくクロノス・グループによって維持されているOpenCLのアプローチは意見が分かれている、とカーリー氏は観察した。 「ホスト ページとアクセラレータ ページがあり、2 つのデバイスについて異なる考え方をする必要がありました。」

「SYCL が行うことは、『コードを書いているので、この C++ コードをこのデバイス上でこの方法で実行してほしい』という、より直観的な単一ページ言語を作成することです。」と Curley 氏は説明しました。 「ホスト コードとデバイス コードを用意して、これら 2 つを管理し、下部でリンクするつもりです。」

「つまり、アセンブリや組み込み関数などを書いている人にたどり着く前に、この連続体のその部分に対してオープンで生産的な答えを提供するのです。」

Curley 氏は、SYCL は、「人々が過去 13 年間プログラミング アクセラレータから学んだことから多くのことを学んだ」ことで、これまでの並列コンピューティングの取り組みよりも「より現代的なスタート」から生まれたものであると説明しました。

oneAPIの目標は、インテルの副社長兼AI・分析担当ゼネラルマネージャーのウェイ・リー氏が昨年ZDNETに語った内容と一致しており、技術的なハードルを克服することで「あらゆる場所でAIにアクセスするための架け橋としてソフトウェアを使用する」という同社の目標である。

CodePlay の買収により、クロスプラットフォームのコンパイルにボタンを押すだけのアプローチを実現するテクノロジーが導入されました。 「私たちのコンパイル スタックに加えて、AMD または Nvidia GPU 用のコードを生成できるように、私たちのツール チェーンに直接組み込まれるプラグインが提供されています」と Curley 氏は述べています。

「今日、ゼロから始める場合でも、1 人のために書いてから移動する必要がなく、SYCL 言語で書いて好きなデバイスに移植できる環境が私たちにはあります。」

ボタンを押すだけで済むという側面は、プログラミングの負担を軽減するだけではない、と Curley 氏は言います。それはコードの移植性にも関係しており、コード自体に魅力があります。

「これは、産業システムの一部の顧客、つまりこれを航空機や20年、30年生きなければならない可能性のあるものに組み込んでいる人々にとって、言語や単一の会社に一期間だけ縛られたくない人々にとっては非常に重要です。実際的なメンテナンス上の理由」とカーリー氏は述べました。

CUDA が市場で 10 年以上リードしてきたことや、Nvidia GPU の膨大なインストール ベースに対して、oneAPI はどのように対抗できるのでしょうか?

「オープンなツールチェーン上に構築するという選択肢と、クローズドなツールチェーン上に構築するという選択肢がある場合、一般的に言えば、オープンな方が勝つ」というのが一つの見方だとカーリー氏は述べた。

同時に、これらのことには時間がかかります。

oneAPI について同氏は、「これは新しいものであり、私たちはまさに旅の始まりにいます。」と述べました。同氏が CUDA について言及する「他の言語」の場合、「最初の 8 ~ 9 年間、それは非常にニッチな言語でした。そして今日でも、実際には特定の分野のプロの実践者だけが使用するものでした。」

「ここでの考え方は、もう少し普及し、もう少しオープンで、もう少し C++ に似たものを作ることができれば、正直に言って、素晴らしい代替手段が生まれるということです。」

関連記事