インテル® oneAPI プログラミング・ガイド Logo
  • はじめに
    • インテル® oneAPI プログラミングの概要
    • インテル® oneAPI ツールキットの配布について
    • 関連ドキュメント
  • oneAPI プログラミング・モデル
    • SYCL
      • SYCL カーネルの互換性
    • OpenMP*
      • SYCL* を使用した C++ のデータ並列処理
        • キューラムダ参照を使用した簡単なサンプルコード
        • 関連情報
      • C/C++ または Fortran と OpenMP* オフロード・プログラミング・モデル
        • 基本的な OpenMP* target 構造
        • Msp 変数
        • OpenMP* TARGET を使用するコンパイル
        • OpenMP* オフロードの追加のリソース
      • デバイスの選択
        • ホストコードでの DPC++ デバイス選択
        • デバイス選択の例
        • ホストコードでの OpenMP* デバイスの確認と選択
      • SYCL* 実行とメモリー階層
        • 実行階層
        • メモリーアクセスの最適化
        • メモリー階層
        • データ・プリフェッチを使用して GPU のメモリー・レイテンシーを削減
  • oneAPI 開発環境の設定
    • インストール・ディレクトリー
    • 環境変数
    • setvars、oneapi-vars および vars ファイル
    • GPU ドライバーまたはプラグインをインストール (オプション)
    • モジュールファイル (Linux* のみ)
      • Windows* で setvars および oneapi-vars スクリプトを使用
        • コンポーネント・ディレクトリー・レイアウトと統合ディレクトリー・レイアウトの違い
        • 統合ディレクトリー・レイアウトの利点
        • Visual Studio* Code 拡張
        • コマンドライン引数
        • 実行方法
        • 確認方法
        • VS####INSTALLDIR 環境変数を使用
        • 複数の実行
        • 統合ディレクトリー・レイアウトの環境変数の初期化
        • ONEAPI_ROOT 環境変数
        • Microsoft* Visual Studio* vcvarsall.bat 構成スクリプトの呼び出しをカスタマイズ
        • VS2022INSTALLDIR と VS2019INSTALLDIR 環境変数
      • Linux* で setvars および oneapi-vars スクリプトを使用
        • コンポーネント・ディレクトリー・レイアウトと統合ディレクトリー・レイアウトの違い
        • 統合ディレクトリー・レイアウトの利点
        • コマンドライン引数
        • 実行方法
        • 複数の実行
        • 統合ディレクトリー・レイアウトの環境変数の初期化
        • ONEAPI_ROOT 環境変数
      • Linux* で環境モジュールファイルを使用
        • モジュールファイル自動ロード
        • すべてのモジュールファイルをロードする
        • 特定のモジュールファイルをロードするカスタム・モジュールファイルを作成
        • モジュールファイル・スクリプトの場所
        • modulefiles ディレクトリーの作成
        • システムに Tcl モジュールファイル環境をインストール
        • modulefiles-setup.sh スクリプトの使用
        • バージョン管理
        • 複数のモジュールファイル
        • oneAPI で使用する modulefiles の記述法を理解する
        • 関連情報
      • oneAPI アプリケーションで CMake を使用
  • oneAPI プログラムのコンパイルと実行
    • 単一ソースのコンパイル
    • コンパイラーの起動
    • インテル® oneAPI DPC++/C++ コンパイラーの標準オプション
    • コンパイル例
      • API ベースのコード
      • ダイレクト・プログラミング
    • コンパイルの手順
      • 従来のコンパイル手順 (ホストのみのアプリケーション)
      • SYCL* オフロードコードのコンパイル手順
      • JIT のコンパイル手順
      • AOT のコンパイル手順
      • ファットバイナリー (Fat Binary)
    • CPU 手順
      • 従来の CPU 向け手順
      • CPU オフロードの手順
        • CPU オフロード向けの設定
        • CPU へコードをオフロード
        • オフロードされたコードのデバッグ
        • CPU コードの最適化
    • GPU 手順
      • GPU オフロードの手順
        • GPU オフロード向けの設定
        • GPU へコードをオフロード
        • GPU コードのデバッグ
        • GPU コードの最適化
      • GPU コマンドの例
      • GPU 向けの事前 (AOT) コンパイル
    • FPGA 手順
      • FPGA 向けのコンパイルが特殊である理由
      • SYCL* FPGA コンパイルの種別
        • FPGA エミュレーター
        • FPGA 最適化サポート
        • FPGA エミュレーター
        • FPGA ハードウェア
  • API ベースのプログラミング
    • インテル® oneAPI DPC++ ライブラリー (oneDPL)
      • oneDPL ライブラリーの使い方
      • oneDPL サンプルコード
    • インテル® oneAPI マス・カーネル・ライブラリー (oneMKL)
      • oneMKL の使い方
      • oneMKL サンプルコード
    • インテル® oneAPI スレッディング・ビルディング・ブロック (oneTBB)
      • oneTBB の使い方
      • oneTBB サンプルコード
    • インテル® oneAPI データ・アナリティクス・ライブラリー (oneDAL)
      • oneDAL の使い方
      • oneDAL サンプルコード
    • インテル® oneAPI コレクティブ・コミュニケーション・ライブラリー (oneCCL)
      • oneCCL の使い方
      • oneCCL サンプルコード
    • インテル® oneAPI ディープ・ニューラル・ネットワーク・ライブラリー (oneDNN)
      • インテル® oneAPI ディープ・ニューラル・ネットワーク・ライブラリー (oneDNN) の使い方
      • インテル® oneAPI ディープ・ニューラル・ネットワーク・ライブラリー (oneDNN) サンプルコード
    • その他のライブラリー
  • ソフトウェア開発プロセス
    • SYCL* と DPC++ へのコードの移行
      • C++ から SYCL* への移行
      • oneAPI DPC++ コンパイラーを使用した CUDA* から SYCL* への移行
      • OpenCL* コードから SYCL* への移行
      • CPU、GPU、および FPGA 間の移行
    • コンポーザビリティー
      • C/C++ OpenMP* および SYCL* のコンポービリティー
        • 制限事項
        • 例
      • OpenCL* コードの相互運用性
    • DPC++ と OpenMP* オフロード処理のデバッグ
      • SYCL* と OpenMP* 開発向けの oneAPI デバッグツール
        • デバッグ環境変数
        • オフロード・インターセプト・ツール
        • インテル® ディストリビューションの GDB*
        • オフロード向けインテル® Inspector
      • オフロード処理のトレース
        • カーネル設定時間
        • バッファーの作成、サイズ、およびコピーの監視
        • 合計転送時間
        • カーネル実行時間
        • デバイスカーネルが呼び出されてスレッドが生成される場合
      • オフロード処理のデバッグ
        • SYCL* 例外ハンドラーを使用する
        • 異なるランタイムまたは計算デバイスで実行
        • CPU 実行をデバッグ
        • インテル® ディストリビューションの GDB を使用して互換性のある GPU での実行をデバッグ
        • GPU 実行をデバッグ
        • 正当性
        • 障害
      • オフロードのパフォーマンスを最適化
        • バッファー転送時間と実行時間
        • インテル® VTune™ プロファイラー
        • インテル® Advisor
        • オフロード API 呼び出しのタイムライン
    • パフォーマンス・チューニング・サイクル
      • ベースラインの確定
      • オフロードするカーネルの特定
      • カーネルをオフロード
      • SYCL* アプリケーションの最適化
        • 高レベルの最適化ヒント
        • ループ関連の最適化
        • メモリー関連の最適化
        • SYCL* 固有の最適化
      • 再コンパイル、実行、プロファイル、そして繰り返し
    • oneAPI ライブラリーの互換性
    • SYCL* 拡張
  • 用語集
    • アクセラレーター (Accelerator)
    • アクセサー (Accessor)
    • アプリケーション・スコープ (Application Scope)
    • バッファー (Buffers)
    • コマンド・グループ・スコープ (Command Group Scope)
    • コマンドキュー (Command Queue)
    • 計算ユニット (Compute Unit)
    • デバイス (Device)
    • デバイスコード (Device Code)
    • DPC++
    • ファットバイナリー (Fat Binary)
    • ファット・ライブラリー (Fat Library)
    • ファット・オブジェクト (Fat Object)
    • ホスト (Host)
    • ホストコード (Host Code)
    • イメージ (Images)
    • カーネルスコープ (Kernel Scope)
    • ND-Range
    • 処理要素 (Processing Element)
    • 単一ソース (Single Source)
    • SPIR-V
    • SYCL
    • work-group (ワークグループ)
    • work-item (ワーク項目)
  • 法務上の注意書き
インテル® oneAPI プログラミング・ガイド
  • はじめに
  • 関連ドキュメント

関連ドキュメント

次のドキュメントは、これから oneAPI プロジェクトを導入する開発者向けの入門資料として役立ちます。

  • 選択したインテル® oneAPI ツールキットの導入ガイド:

    • インテル® oneAPI ベース・ツールキット導入ガイド: Linux* (英語) | Windows* (英語)

    • インテル® HPC ツールキット導入ガイド: Linux* (英語) | Windows* (英語)

  • インテル® oneAPI ツールキットのリリースノート:

    • インテル® oneAPI ベース・ツールキット (英語)

    • インテル® HPC ツールキット (英語)

  • 言語リファレンス:

    • Khronos SYCL* のリファレンス (英語)

    • SYCL* 仕様 (PDF) 1.2.1 (英語) | 2020 (英語)

    • Data Parallel C++: Mastering DPC++ for Programming of Heterogeneous Systems using C++ and SYCL (book by James Reinders, Ben Ashbaugh, James Broadman, Michael Kinsner, John Pennycook, and Xinmin Tian, parts of this book were reused under the Creative Commons license) (英語)

    • LLVM/OpenMP* ドキュメント (英語)

    • OpenMP* 仕様 (推奨されるサンプル・ドキュメント) (英語)


© Intel Corporation. 無断での引用、転載を禁じます。

Sphinx を使用してビルドされ、Read the Docs が提供するテーマを使用しています。