この記事は、インテル® デベロッパー・ゾーンに公開されている「Introducing Intel® oneAPI 2022」の日本語参考訳です。原文は更新される可能性があります。原文と翻訳文の内容が異なる場合は原文を優先してください。
この記事の PDF 版はこちらからご利用になれます。
受賞歴のあるインテル® oneAPI ツールのバージョン 2022 がリリースされました。最新バージョンでは、クロスアーキテクチャー機能が拡張されており、開発者に計算を高速化するさらに優れたユーティリティーとアーキテクチャーの選択肢を提供します。これらのツールは、Python*、C++、OpenMP*、MPI、Fortran、SYCL*、C、および各種 oneAPI ライブラリーでハイパフォーマンスなプログラミングをサポートします。
新機能として、AI ワークロードやレイトレーシングのビジュアライゼーション・ワークロードのパフォーマンス・アクセラレーション、より幅広いデバイスのサポート、標準規格サポートの拡大、新しいマイクロアーキテクチャー向けの最適化、バージョン 2021 以降に追加された 900 以上の新機能、LLVM ベースの統一された C/C++/Fortran/SYCL*/OpenMP* コンパイラー、CPU と GPU 向けのデータ並列 Python*、高度なアクセラレーター・パフォーマンスのモデル化とチューニングなどがあります。
これらのプログミング・ツールは、インテル® デベロッパー・ゾーン (英語)、apt-get (英語)、Anaconda*、およびその他のリポジトリー (英語) から入手するか、プリインストールされたインテル® DevCloud (英語) またはコンテナー (英語) で利用できます。インテル® DevCloud では、CPU、GPU、および FPGA 上で oneAPI を評価できます。
oneAPI アクセラレーション: AI を高速化
oneAPI は、シームレスなソフトウェア・アクセラレーションを提供することで、AI ワークフローを高速化します。oneDNN、oneDAL、oneCCL、oneMKL などのライブラリーは、インテルの AI ツールやフレームワークの最適化ポートフォリオのパフォーマンスと生産性を促進する基盤を形成します。
インテル® oneAPI AI アナリティクス・ツールキットは、エンドツーエンドのデータサイエンスとマシンラーニング・パイプラインを高速化します。また、さまざまなディープラーニング・フレームワークでトレーニング後の最適化を簡素化するインテル® Neural Compressor が新たに追加されました。低精度量子化、プルーニング、知識の蒸留、その他の圧縮手法により、AI 開発者は、インテル® プラットフォーム上で推論パフォーマンスとエンジニアリング生産性を向上できます。
oneAPI ライブラリーを使用することで、最適化された Tensorflow* は、最適化する前と比較して 10 倍のパフォーマンス向上を達成しました。Anaconda* (英語) などからダウンロードできる oneAPI により最適化された scikit-learn* を利用することで、Python* のマシンラーニング・アルゴリズムのトレーニングは平均 27 倍、推論は 36 倍高速になりました。わずかな労力でこのような結果が得られることから、最も人気のある AI フレームワーク (英語)、ディストリビューション (Anaconda* を含む)、およびアプリケーションが、AI やマシンラーニングを強化 (英語) するためインテルの最適化を採用しています。
また、oneAPI は AI 開発を促進するため、大容量のインテル® Optane™ メモリーを搭載した新しいワークステーションを支援しています。Dell、HP、Lenovo (英語) は、インテル® oneAPI AI アナリティクス・ツーキット (英語) がプリインストールされたインテル® Core™ プロセッサーとインテル® Xeon®プロセッサー・ベースの Linux* ノートパソコン、デスクトップ、ワークステーションを多数提供しています。これらのシームレスで使いやすいソリューションは、データ・サイエンティストが複雑なデータの反復処理、可視化、解析を大規模に行うことを可能にします。
オープンで相互運用可能、かつ拡張可能なインテルの AI 計算プラットフォームにより、AI プロジェクトを本番環境にスケーリングする方法については、VentureBeat の記事「Scaling AI and data science – 10 smart ways to move from pilot to production (AI とデータサイエンスのスケーリング – プロトタイプからプロダクションへ移行する 10 のスマートな方法)」 (英語) を参照してください。ソフトウェア AI アクセラレーター (英語) により、同じハードウェア構成で無料で AI パフォーマンスを向上させる方法も参考にしてください。
oneAPI アプローチの重要性
インテルの oneAPI 実装であるインテル® oneAPI ツールは、数十年にわたって世界中の多くのアプリケーション開発に広く使用されてきたインテル® ソフトウェア製品をベースに、インテルが多大な貢献をしている複数のオープンソース・プロジェクトから構築されています。インテル® oneAPI ツールは、さまざまなデバイスタイプとアーキテクチャー (英語) をサポートするという oneAPI のビジョンに従って、CPU、GPU、FPGA などのサポートを常に拡大しています。
Embree: 写実的なレンダリングのパス・トレーシング
パス・トレーシングは、3 次元環境における光輸送をシミュレートして画像を生成するアルゴリズムです。さまざまな現実世界の要素 (木、車、人、テーブルなど) を使用して複雑で写実的なシーンをレンダリングするパス・トレーシングは、メモリーサイズと計算アルゴリズムの要求の組み合わせにより、これまでは主に映画、詳細な製品設計、スーパーコンピューターのサイエンティフィック・ビジュアライゼーションなどのプロの領域にとどまり、CPU が最適な処理プラットフォームとされてきました。近年の技術開発により、GPU によるレイトレーシングが高速化され、パス・トレーシングの目を見張るような写実的な画像を誰もが楽しめるようになりました。
GPU にレイトレーシングのハードウェアを追加することで、グラフィックス業界は大きく変化していますが、ソフトウェア開発者にとっては、プログラミング対象のプラットフォームが増えるという課題があります。XPU を意識したプログラミングを推奨および支援する oneAPI のアプローチは、CPU と GPU で別々のコードベースを持つという極端なケースを回避するのに役立ちます。
インテル® oneAPI レンダリング・ツールキット、アカデミー賞を受賞したインテル® Embree、そして最先端の AI ノイズ除去ツールのインテル® Open Image Denoise で構築された XPU パストレーサーは、XPU 向けの開発に必要なソリューションを提供します。
インテル® Open Image Denoise: ノイズを除去する ML アルゴリズム
このビデオでは、インテル® Xe アーキテクチャー・ベースのシステムで動作するインテル® Embree とインテル® Open Image Denoise を使用した、1 サンプル/ピクセルのパス・トレーシングとテンポラル・アンチエイリアスのリアルタイム画面キャプチャーを視聴できます。
インテル® Embree の概要ビデオ
インテル® ソフトウェアのパス・トレーシングは、MGM の長編アニメーション映画『アダムス・ファミリー 2』の視覚効果のノイズ除去に使用されました。Forbes 誌の記事 (英語) では、その仕組みと重要性について詳しく解説しています。
oneAPI は、複数のコードベースを維持するデメリットを抑え、優れたパフォーマンスと機能を提供します。
FPGA: GPU だけでなくさまざまなものをサポート
DPC++ コンパイラーの SYCL* サポートによる FPGA プログラミング (英語) では、任意精度の整数、固定小数点、浮動小数点、複素数データ型、カーネル間およびカーネルから I/O への通信用パイプ、複数のメモリータイプ (HBM、DRAM、インテル® Optane™ メモリーなど) を使用するデプロイでのメモリー割り当てを制御する buffer_location アクセサー・プロパティーなど、豊富な機能を利用できます。今後も、FPGA 設計の制御性を高める機能が継続的に追加される予定です。
インテル® DevCloud では、インテル® Arria® FPGA やインテル® Stratix® FPGA を利用できます。2022 年初めには、データセンター、ネットワーク、エッジ計算アプリケーション向けに最大 40% ハイパフォーマンス (geomean とインテル® Stratix® 10)、または最大 40% 低消費電力の新しいインテル® Agilex™ FPGA がインテル® DevCloud に追加される予定です。インテル® DevCloud では、CPU、GPU、または FPGA 上でインテル® oneAPI を今すぐ評価できます。そして、新しいハードウェアが追加されたら、すぐに試すことができます。
業界標準
インテルは業界標準を積極的にサポートしており、現在の対応状況は以下の通りです。
- すべてのインテル® C/C++/Fortran コンパイラーは OpenMP* 4.5 に加えて、5.0 と 5.1 の大部分の機能をサポートしています。
- LLVM ベースのコンパイラーは、インテルが長い時間をかけて開発した初の XPU 向け C/C++/Fortran コンパイラーであり、積極的に拡張に取り組んでいます。
- インテル® C コンパイラー (icx) は Clang を採用しているため、C99 と C11 を完全にサポートしており、C17 と C23 (提案) の一部をサポートしています。また、今後のアップデートでは、さらにサポートが拡張される予定です。
- インテル® C++ コンパイラー (icpx) は、C++11、C++14、C++17 を完全にサポートしており、C++20 (現在改良中) と C++23 (提案) の一部をサポートしています。また、SYCL* 2020 (英語) のほとんどの機能もサポートしています。今後のアップデートでは、さらにサポートが拡張される予定です。
- インテル® Fortran コンパイラー (ifx) は、PDT を除く Fortran 2003、Co-Array を除く Fortran 2008、および OpenMP* 5.1 の GPU への計算オフロードをサポートしています。この LLVM ベースの Fortran コンパイラーは、今後 XPU 向け Fortran コンパイラーとしての機能を拡張しつつ、Fortran コンパイラー・クラシックと同等の機能を提供する予定です。
- インテル® C/C++ コンパイラー・クラシックは、C99、C11、C17、C++11、C++14、C++17 のほぼすべての機能と、C++20 の一部の機能を CPU でのみサポートしています。
- インテル® Fortran コンパイラー・クラシック (ifort) は、Fortran 2003、2008、および 2018 を CPU でのみサポートしています。また、OpenMP* 4.5 のすべての機能と、5.0 と 5.1 のほとんどの機能をサポートしています。
インテル® MPI ライブラリーは、MPI 3.1 に準拠しており、GPU からランクへのピニングの使用、GPU メモリー割り当て (USM)、Google Cloud Platform* ファブリック向けのパフォーマンス最適化などがサポートされています。今後、MPI 4.0 に準拠する予定です。
インテルの Python* サポートは、Python* 3.x のパフォーマンスを最適化します。
高度なマイクロアーキテクチャー・サポート
- インテル® VTune™ プロファイラーのマイクロアーキテクチャー全般解析とメモリーアクセス解析は、インテル® マイクロアーキテクチャー Alder Lake (開発コード名) をサポートしています。
- インテル® oneAPI ディープ・ニューラル・ネットワーク・ライブラリーは、int8 推論と bfloat16 トレーニング用の AI ワークロードでインテル® AMX 命令をサポートしています。
- 最新のマイクロアーキテクチャー向けのコンパイラーとライブラリーの最適化が多数追加されています。
ユーザーからのフィードバックを基に追加された機能
インテル® oneAPI 2022 には、900 以上の新機能が追加されています。以下はその一部です。
- Visual Studio* Code の拡張ヘルプ (英語) には生産性を向上する一般的なタスクが含まれています。
- oneAPI の使用を拡張するため、Microsoft* Windows* Subsystem for Linux* (WSL2) が新たにサポートされました。Windows* 10 と Windows* 11 の WSL2 を使用して、Windows* 上の CPU と GPU ワークフローで、ネイティブ Linux* バージョンのインテル® oneAPI コンパイラーとライブラリーを使用できます。将来のインテル® oneAPI リリースでは、このサポートが解析ツールと通信ライブラリーに拡張される予定です。これについては、Microsoft* とインテルのブログ (英語) で紹介されている以上のことができるので、今後のブログで詳しく取り上げる予定です。
- インテル® MPI ライブラリーに Google Cloud Platform* ファブリック (OFI/tcp) 向けの新しいパフォーマンスの最適化が追加されました。
- IoT 開発者 (英語) は、OpenEmbedded や Yocto Project* で提供される intel-meta レイヤーを介してインテル® oneAPI ツールを使用することで、最適化された Yocto Project* Linux* カーネルやアプリケーションの開発を高速化できます。
- インテル® Inspector (英語) では、CPU ターゲットで実行される DPC++ や OpenMP* オフロードコードのメモリーとスレッドエラーの解析が向上し、Windows* で memcpy() 関数引数の正当性のチェックが追加され、C++ スタックフレームの可視化が改善され、libc ライブラリーのレポートの精度が向上しています。
- インテル® Embree (英語) レイトレーシング・ライブラリーが ARM をサポートし、サイエンティフィック・レンダリングと一般的なレンダリングを支援するため、色付き透明、色付きシャドウ、円錐、および円柱が再追加されました。
- インテル® オープン・ボリューム・カーネル・ライブラリー (インテル® Open VKL) 1.0 (英語) には、ARM CPU 上でのインテル® Open VKL のネイティブな使用のサポートに加え、新たな API としてインターバルおよびヒット・イテレーター・コンテキスト、任意のボリューム属性に対する反復処理、設定可能なバックグラウンド値、トライキュービック・フィルタリング、VDB 複数属性ボリュームのサポート、構造化および VDB ボリュームサンプルの高速化、構造化、VDB、および非構造化ボリュームのインターバル反復の高速化、構造化 FP16、VDB FP16、VDB モーションブラー、VDB キュービック・フィルタリングのサポート、および同じシーンで複数のボリュームを扱うことができる機能などが追加されています。
- インテル® Open Image Denoise (英語) が、指向性ライトマップと Apple Silicon に加え、最終フレームのより高品質なレンダリングを提供する新しいノイズ除去モードをサポートしました。
- インテル® OSPRay (英語) が、トランスフォーム・モーション・ブラーと MPI Module ライブラリーをサポートしました。
- インテル® OSPRay Studio (https://www.ospray.org/ospray_studio/) の GUI では、ライトエディターの改善によりシーンのライティングが容易になり、gITF ローダーがトライアングル・メッシュ、パンクチュアル・ライト、マテリアル、テクスチャー、より多くのカメラステートのアニメーションとスキニングに対応し、モデル・トランスフォーム、マテリアル、ライト、カメラステートを含めることでシーンファイルのロードとセーブが向上しています。また、Studio Scene Graph での Python* バインディング、インテル® OSPRay のトランスフォームとカメラ・モーション・ブラー効果を制御するパラメーター、UDIM テクスチャー・ワークフローのサポートなどの新機能も追加されています。
- 強化されたインテル® VTune™ プロファイラーの生産性には、フレームグラフの可視化が含まれます。
- インテル® Advisor では、GPU のモデル化とルーフライン解析が改善されています。
ツールの入手方法
アップデートは、オリジナル製品のダウンロードと同じ場所で入手できます。インテル® デベロッパー・ゾーンのインテル® oneAPI ツールのサイト、またはコンテナー (英語)、apt-get、Anaconda*、その他のディストリビューション経由で入手できます。
これらのツールは、非常に有用なトレーニング・リソースを備えたインテル® DevCloud (英語) でも利用できます。このクラウド環境は、自前でシステムを構築することなく、無料でさまざまなインテルの CPU やアクセラレーターを使ってコードを開発、テスト、最適化できる素晴らしい場所です。
最高の oneAPI を今すぐダウンロード
oneAPI は、ヘテロジニアス・コンピューティング時代にプログラミング作業を真にオープンにし、ライブラリー、コンパイラー、デバッガー、アナライザー、フレームワークなど、共通のツールで、ベンダーやアーキテクチャーに依存しないシステムをサポートします。
最新バージョンにアップデートして、インテル® oneAPI ツールの機能を最大限に活用することをお勧めします。インテルは、最高のパフォーマンスを引き出せるように支援します。
ご質問は、コミュニティー・フォーラム (英語) に投稿いただくか、個別のサポートをご希望の場合は、有料のプライオリティー・サポートをご確認ください。
oneAPI で可能なヘテロジニアス・プログラミングに関する、ブログ (英語) もご覧ください。
oneAPI は、すべてのソフトウェア開発者を支援するためのものであり、喜びであり、未来でもあります。
oneAPI について
oneAPI (英語) は、ヘテロジニアス・コンピューティング向けのオープンな、統一された、クロスアーキテクチャー・プログラミング・モデルです。oneAPI は、プログラミング・ツール (ライブラリー、コンパイラー、デバッガー、アナライザー、フレームワークなど) に対して、オープンでマルチベンダー、マルチアーキテクチャのアプローチを採用しています。標準規格に基づくこのプログラミング・モデルは、ソフトウェア開発を簡素化し、レガシーコードの統合を可能にしながら、独自のプログラミング・モデルに代わって、妥協のない、高速なコンピューティング・パフォーマンスを提供します。Sanjiv Shah の投稿 (英語) では、oneAPI 1.1 仕様と近日公開予定の 1.2 仕様について説明しています。詳細は、oneapi.io (英語) を参照してください。
製品および性能に関する情報
1 性能は、使用状況、構成、その他の要因によって異なります。詳細については、http://www.intel.com/PerformanceIndex/ (英語) を参照してください。