インテル® DPC++ 互換性ツール


はじめに     ドキュメントとサンプルコード     トレーニング     要件     ヘルプ

効率良い移行

  • インテル® DPC++ 互換性ツールは、既存の CUDA* コードから SYCL* コードへの移行を支援します。
  • DPC++ は ISO C++ をベースとしており、標準の SYCL* とコミュニティーによる拡張機能を組み込んで、データ並列プログラミングを簡素化します。

CUDA* から C++ with SYCL* への移行ワークフロー
CUDA* から SYCL* へのカタログ (英語)

必要なもの

  • インテル® DPC++ 互換性ツールは、インテル® oneAPI ベース・ツールキットに含まれています。
  • Eclipse* や Microsoft* Visual Studio* などの使い慣れた IDE に統合できます。

インテル® oneAPI ベース・ツールキットについて

どのように動作するか

  • このツールは、CUDA* 言語のカーネルとライブラリー API 呼び出しの両方を移行します。
  • 通常、CUDA* コードの 90% – 95% は自動的に SYCL* へ移行されます1
  • インラインのコメントは、コードの記述とチューニングを完了するのに役立ちます。

インテル® DPC++ 互換性ツールガイド
インテル® oneAPI DPC++/C++ コンパイラー

12023年3月時点のインテルによる推定。これは、Rodinia、SHOC、および Pennant など 85 の HPC ベンチマークとサンプルのセットからの測定に基づいています。結果は異なることがあります。


ツールキットの一部としてダウンロード

インテル® DPC++ 互換性ツールは、インテル® oneAPI ベース・ツールキットに含まれています。このツールセットは、多様なアーキテクチャーでハイパフォーマンスなデータ・セントリックのアプリケーションを開発するためのツールとライブラリーの基本セットです。


すべてのツールキットを見る

スタンドアロン・バージョンをダウンロード

インテル® DPC++ 互換性ツールのスタンドアロン・バージョンが提供されています。インテルからバイナリーをダウンロードすることも、リポジトリーからダウンロードすることもできます。


インテル® DPC++ 互換性ツールの進化を支援

このツールは、oneAPI 業界標準イニシアチブをサポートします。皆さんの参加を歓迎します。

oneAPI 仕様 (英語)
SYCL* 2020 日本語ドキュメント (リビジョン 6)
SYCL* について (英語)
オープンソースの SYCLomatic (GitHub*) (英語)


コードの移行: 前後

CUDA* ソースコード

インテル® DPC++ 互換性ツールは、CUDA* の現行および以前のバージョンで実装されたソフトウェア・プログラムを移行します。詳しくはリリースノート (英語) を参照してください。

移行されたコード

結果のコードは、コードの移行後に表示される典型的なものです。多くの場合、コードの移行を完了するには、編集と最適化が必要になります。


はじめに

ダウンロード

インテル® oneAPI ベース・ツールキットの一部であるインテル® DPC++ 互換ツールをインストールして構成します。

インテル® oneAPI ベース・ツールキットを入手
インテル® oneAPI ベース・ツールキットを入手

試してみましょう

簡単なサンプルコードを使用して、移行がどのように行われるか確認します。

導入ガイド

関連資料

提供されているさまざまなサンプル、チュートリアル、およびトレーニングのリソースにアクセスしてみましょう。

DPC++
インテル® oneAPI DPC++/C++ コンパイラー


ドキュメントとサンプルコード

ドキュメント

すべての日本語ドキュメントを表示

成功事例

サンプルコード

入門

Vector Add (英語)
この Hello World サンプルでは、簡単な CUDA* プログラムを SYCL* に準拠したコードに移行する方法を紹介します。これにより、開発環境が移行向けに正しく設定されているか確認します。

Needleman Wunsch (英語)
このサンプルは、利用中の Make および CMake* プロジェクトを CUDA* から SYCL* に移行する典型的な例を紹介します。コードは、ニードルマン・ウンシュ・アルゴリズムのベンチマーク・セットである Rodinia に基づいています。

 

コード最適化

並行カーネル (英語)
CUDA* ベースのコードを SYCL* に移行して計算を GPU または CPU にオフロードすることでこのガイド付きサンプルを実装します。GPU 上で複数のカーネルを同時に実行するため、SYCL* キューを使用して処理時間を最適化および改善する方法を理解します。

HSOptical フロー (英語)
このサンプルは、オプティカル・フローを推定するため Horn-Schnuck を実装しています。GPU オフロードによって偏微分方程式 (PDE) ソルバーを高速化する方法を学びます。

疑似乱数発生器 (英語)
CUDA* ベースのコードを SYCL* に移行して計算を GPU または CPU にオフロードすることでこのガイド付きサンプルを実装します。このサンプルでは、CUDA* による定数メモリー機能の移行を説明します。

oneAPI サンプルのカタログを表示 (英語)

サンプルコードの使い方:

  • コマンドライン・インターフェイスを使用する: Windows* (英語) | Linux* (英語)
  • IDE を使用する: Windows* (英語) | Linux* (英語)

トレーニング

CUDA* コード から C++ with SYCL* へ移行する方法

ハンズオン学習

最新アクセラレーター・プロセッサー上の 将来性のあるコード

すべてのリソースを表示 (英語)
トレーニングとイベントカレンダー (英語)


必要要件

開発オペレーティング・システム

  • Linux*
  • Windows*

ソフトウェア・ツールの要件

  • CUDA* ヘッダーファイル
  • Eclipse* (オプション)
  • Visual Studio* (オプション)

詳細は、「動作環境」をご覧ください。



コードに関連するすべての情報を常に把握

サインアップすると、CPU、GPU、FPGA、およびその他のアクセラレーター (スタンドアロンや任意の組み合わせ) に最適化され、優れたコードを作成するのに役立つ最新のトレンド、チュートリアル、ツール、トレーニングなどを受けることができます。