インテル® oneAPI Developer Program に参加する
この記事は、インテル® デベロッパー・ゾーンに公開されている「Join the Intel® oneAPI Developer Program」の日本語参考訳です。
oneAPI 構想に興味のある開発者は、インテル® oneAPI パブリックベータ (英語) に参加して、ご意見をお寄せください。インテルは、単一コードベースで CPU、GPU、FPGA、ASIC および将来のアクセラレーターで利用可能な新しいプログラミングの取り組みにご協力いただける開発者を募集しています。
これまで、ネイティブと同等のパフォーマンスで複数のプラットフォームとアーキテクチャーを一貫してサポートできる、一般的なプログラム言語、API ライブラリーおよびツールは存在せず、プラットフォームやアクセラレーターの種類ごとに固有のツールとアプリケーションが必要でした。oneAPI 構想は、CPU、GPU、FPGA および ASIC アクセラレーターをすべてサポートして、ネイティブな高水準言語のパフォーマンスを達成するコンパイラーおよびライブラリーを作成することを目標としています。
oneAPI 構想は、業界標準とオープン仕様を採用し、開発者がスカラー、ベクトル、行列および空間 (SVMS) アーキテクチャーをターゲットとすることが可能な、ツールとライブラリーの包括的なセットを提供します。さらに、oneAPI では、非営利団体の Khronos* Group により策定された SYCL* 仕様に基づく新しいクラスのセットである、データ並列 C++ (DPC++) を導入しています。
oneAPI 仕様は、4 つのモデルを使用したヘテロジニアス・コンピューティング機能を定義しています。モデルは、開発者がヘテロジニアス・コンピューティング・リソースを活用する方法を定義します。これらの 4 つのモデルは SYCL* C ユーザーになじみ深いものになるでしょう。
- プラットフォーム・モデル: ホストとデバイスを指定します。
- 実行モデル: コマンドキューを指定しデバイスで実行するコマンドを発行します。
- メモリーモデル: ホストとデバイスがメモリーと対話する方法を定義します。
- カーネルモデル: デバイスで実行するコード、カーネルコードを定義します。
これらのモデルは、引き続き DPC++ の一部として SYCL* 仕様を拡張し、オープンソースとしてコミュニティーに提供されます。DPC++ は、ラムダ、テンプレート、parallel_for キーワードおよびクロージャーなどの C++11 以降の言語機能を使用します。また、DPC++ の目標の 1 つは、OpenCL* に匹敵する高水準プログラミング言語を提供することです。しかし、DPC++ と OpenCL* には、多くの類似点と多くの相違点があります。顕著な相違点の 1 つは、ユニバーサル共有メモリーです。
インテル® DevCloud で oneAPI の開発を簡素化
DPC++ およびベータ版インテル® oneAPI ツールキットを試す最良の方法の 1 つは、インテル® DevCloud を利用することです。無料のクラウド上にホストされたインフラストラクチャーで、最新のインテル® Xeon® スケーラブル・プロセッサーやインテル® GPU およびインテル® FPGA を搭載したシステムを実行します。すべてのハードウェアへのアクセスに加えて、最新のベータ版インテル® oneAPI ツールキットとともに、インテル® DevCloud で利用可能な無数のハードウェアに展開できるアプリケーションの開発に必要なものがすべて提供されます。
認証情報を入手したら、welcome_dpcpp を実行して、計算を GPU ノードにオフロードする最初の DPC++ プログラムを試すことができます。ログインして /data/oneapi/welcome_dpcpp.sh を実行すると、プロンプトが数回表示されます。プログラムとソースコードを home ディレクトリーにコピーした後、インテル® DevCloud のキューシステムを使用してアプリケーションの実行を GPU にオフロードします。ソースを見ると、最小限の労力で入力バッファーから文字バッファーを返す単純なアプリケーションをオフロードしていることが分かるでしょう。
インテル® DevCloud の詳細は、入門ガイド (英語) を参照してください。インフラストラクチャーのさまざまなハードウェア・ターゲットに対して実行する方法やベクトルの和サンプルが紹介されています。このほかにも、多くのサンプル (英語) が用意されています。
インテル® oneAPI ベータ・ソフトウェアに関するご意見、ご要望は、インテル® oneAPI フォーラム (英語) までお寄せください。インテル® oneAPI Developer Program チームは、米国、ヨーロッパ、アジアおよび日本でライブ・デベロッパー・ワークショップを計画しています。最新情報は、ウェブサイト (英語) を参照してください。
oneAPI の近況を調べる
今すぐベータプログラムにご参加ください。インテルとともに作業して、オープンな、クロス・アーキテクチャー・ソフトウェア開発に移行する、またとない機会です。インテル® DevCloud for oneAPI プロジェクト (英語) では、最新のインテル® oneAPI ベータ・ソフトウェアを使用して、さまざまなインテル® CPU、インテル® GPU、インテル® FPGA のワークロードを開発、テスト、実行できます。
関連情報
oneAPI 仕様 v0.5 (英語): CPU 以外のアーキテクチャー向けの直接プログラミング言語、強力な API、低水準ハードウェア・インターフェイスを含みます。
インテルがハイパフォーマンス・コンピューティングと AI アクセラレーションを備えた新しい GPU アーキテクチャー、およびヘテロジニアス・アーキテクチャー向けの統一されたスケーラブルな抽象化を備えた oneAPI ソフトウェア・スタックを発表 (英語): HPC DevCon で、Raja Koduri は、oneAPI 構想と開発者向けインテル® oneAPI ベータ製品のリリースを発表しました。
「One Developer Experience」オンライン (https://software.intel.com/en-us/articles/delivering-one-intel-developer-experience-online): One Developer Experience により、シングルサインオン、単一のプログラム分類、価値あるコンテンツ、ツール、および信頼できるサポートへの容易なアクセスが可能です。
著者紹介
Ben Odom。インテルのアーキテクチャー・グラフィックスおよびソフトウェア (IAGS) デベロッパー・リレーションズ・サービス (DRS) で複数の技術分野を担当するデベロッパー・エバンジェリストのチームを率いています。チームは現在、人工知能、マシンラーニング、ゲーム開発、および oneAPI に取り組んでいます。
コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。