開発者が実感する oneAPI の価値

インテル® oneAPI

この記事は、インテル® デベロッパー・ゾーンに公開されている「Developers Realize the Value of oneAPI」の日本語参考訳です。原文は更新される可能性があります。原文と翻訳文の内容が異なる場合は原文を優先してください。


Scott Apeland
デベロッパー・リレーションズ & エコシステム・プログラム・ディレクター

インテル® oneAPI ツールキットは、CPU とアクセラレーター向けの統一されたクロスアーキテクチャー・プログラミング・モデルとして、開発者の間で強い関心を集め、最初のリリースからわずか 1年余りで、インテル® oneAPI ツールキットの採用が拡大しました。oneAPI を使用する理由として開発者は、oneAPI がオープンで、短期間で習得でき、コードを oneAPI に移行して得られる SYCL* コードが異なるアーキテクチャー間で移植可能であることを挙げています。

ここでは、開発者の方々から寄せられた声を紹介します。

オープンスタンダードを大いに信頼

スウェーデン王立工科大学およびストックホルム大学の生物物理学部の Erik Lindahl 教授は、GROMACS 研究と oneAPI への移行を主導しています。sycl.tech ビデオ (英語) で Lindahl 教授は、oneAPI のオープンスタンダード・ベース、クロスアーキテクチャー、クロスベンダーのプログラミング・モデルの価値について語っています。

「私とチームにとって最も重要なことは、oneAPI がオープンスタンダードであることです。我々は、特に長期的にはオープンスタンダードを固く信じています。オープンスタンダードであれば、ベンダーが何をしようとも、我々はそれに依存することができるからです。oneAPI はプログラミングの革命になると考えています。」

GROMACS は、新薬の設計に用いられるタンパク質、脂質、核酸のシミュレーション向けに設計された分子動力学パッケージです。このパッケージは、より優れた並列化および多種多様なアーキテクチャーの能力を使用できるように、oneAPI と SYCL* を使用して最適化されています。

ストックホルム大学は、2020 年 11 月に設立された最初の 4 つのインテル® oneAPI 研究拠点のうちの 1 つでもあります。その数は 19 に増え、最も新しい拠点であるダルムシュタット工科大学が最近発表されました (英語)。研究拠点は世界中の一流大学や研究所 (英語) にあり、オープンソース・コードの実現、新しいハードウェア・プラットフォームやプログラミング言語に対する oneAPI サポートの構築、oneAPI カリキュラムやトレーニングの提供などに重点を置いています。

例えば、ハイデルベルグ大学の oneAPI 研究拠点の Aksel Alpay 氏は、AMD* GPU ベースのシステムをサポートする hipSYCL に高度なデータ並列 C++ (DPC++) 機能を追加しました。中国科学院計算技術研究所の oneAPI 研究拠点では、oneAPI を拡張して中国のローカル・アクセラレーターをサポートしています。オークリッジ国立研究所の oneAPI 研究拠点の Jin Zheming 博士は、開発者が CUDA* コードを DPC++ (SYCL*) に移行する際に役立つ、オープンソースのサンプル、ベンチマーク・コード、ドキュメントのリポジトリーを作成しています。

楽しく学ぶ

一般的で親しみやすい C/C++ 構文をベースであることも、開発者が oneAPI を支持する理由です。2021 年に開催された OpenCL™ Standard (IWOCL) SYCLcon DevSummit で、ニューサウスウェールズ大学 (UNSW) シドニー校の博士課程に在籍し、オーストラリア原子力科学技術局の原子力エンジニアである Andrew Pastrello 氏は、次のように話しました (英語)。

「DPC++ の並列カーネルの実装は、特に USM 機能を使用すると非常に簡単です。楽しく学ぶことができ、ODE を解いた経験は将来的に貴重なものになると思います。」

Pastrello 氏は、SYCL* (DPC++) を使用して、パフォーマンスを移植可能なモンテカルロ中性子輸送アルゴリズムの開発を行っています。一般的で馴染みのある C++ 構文ベースの SYCL* で次のことを発見しました。

  • ホストコードは OpenCL* コードよりもはるかにシンプルです。
  • ホストとデバイスで同じデータ構造定義が使用されます。
  • 1 つのコードベースで、さまざまなハードウェア・ターゲットに対応できます。

CUDA* 移行作業の 80% をインテル® DPC++ 互換性ツールが処理

イリノイ大学アーバナ・シャンペーン校の NAMD (Nanoscale Molecular Dynamics) 開発リーダーの David Hardy 氏は、2021 年 11 月に開催された oneAPI DevSummit SC21 で発表 (英語) し、次のように述べました。

「NAMD などの大規模アプリケーションを CUDA* から DPC++ に移行するのは大変な作業ですインテル® DPC++ 互換性ツールは、CUDA* API 呼び出しを対応する DPC++ 機能に自動的に変換することで、手作業の多くを軽減します。これにより、プログラマーは、DPC++ コードを手動で記述する労力を最小限に抑え、アプリケーションの正当性を確保することに集中できます。」

NAMD は、大規模な生体分子系のハイパフォーマンス・コンピューティング向けに設計された、著名な並列分子動力学アプリケーションです。19,000 行の CUDA* コードがあるため、DPC++ への移行は困難な作業でした。CUDA* 言語カーネルとライブラリー API 呼び出しを移行するインテル® DPC++ 互換性ツールを使用することで、NAMD の CUDA* コードの 80% が DPC++ コードに自動的に移行されました。

3D モデルのパフォーマンスを最大 9 倍向上

Daspatial の研究開発 (R&D) 責任者の Yunlong Gao 氏は、2021 年に中国で開催された oneAPI DevSummit で発表 (英語) し、次のように述べています。

「インテル® oneAPI ベース・ツールキットとインテル® oneAPI AI アナリティクス・ツールキットは、既存の GPU ソリューションと比較してインテル® Xeon® プロセッサー・ベースのプラットフォーム上で 3D モデルの再構成パフォーマンスを最大 9 倍向上させました。」

このアプリケーションでは、AI による前処理と推論による特徴一致を利用して、非常に大きな医用画像の 3D 画像再構成を行っています。oneAPI とインテル® Xeon® プロセッサー・ベースのプラットフォームを組み合わせることで、並列マルチインスタンスと大きなバッチサイズで最適化された AI 推論処理により大きな画像を扱うことが可能になりました。前処理モジュールにインテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) とマルチスレッド最適化を適用し、AI 推論画像一致モジュールにインテル® oneAPI ディープ・ニューラル・ネットワーク・ライブラリー (インテル® oneDNN) で最適化した TensorFlow* を使用することでパフォーマンスを向上しました。

世界の学生に向けた oneAPI カリキュラム

学生が oneAPI を学び、使用する機会を確保するため、インテル® Academic Program for oneAPI (英語) は、コンピューター・サイエンスの学部課程に oneAPI を採用する大学に対し、教材キット、カリキュラム、DevCloud 計算リソースを提供しています。最初の授業は、2021 年秋に中国の清華大学、北京大学、中国科学技術大学、西安大学で開始されました。2022 年には、米国、欧州、アジア、中国の大学がコンピューター・サイエンスのコースに oneAPI とヘテロジニアス・プログラミングを採用し、この取り組みはグローバルに拡大しています。

その他の事例と開発リソース

これらはほんの一例に過ぎません。oneAPI エコシステム・サポート (英語) には、数多くの事例があります。また、定期的に開催されるバーチャル oneAPI DevSummits では、oneAPI を使用した経験や知識を共有する産学官のスピーカーから直接話を聞くことができます。今後開催されるイベント、DevSummits、録画セッション (英語) をご覧ください。ツールキットは、インテル® デベロッパー・ゾーン (英語) から入手できます。

関連ビデオ

関連ポッドキャスト

関連記事

ソフトウェアを入手

インテル® oneAPI ベース・ツールキット
ハイパフォーマンスなデータセントリックのアプリケーションを多様なアーキテクチャー向けに開発してデプロイするのに必要なツールとライブラリーの基本セットを提供します。

今すぐ入手 (英語)
すべてのツールを見る (英語)


製品および性能に関する情報

1 性能は、使用状況、構成、その他の要因によって異なります。詳細については、www.Intel.com/PerformanceIndex/ (英語) を参照してください。

タイトルとURLをコピーしました