ベータ版 oneAPI for AMD* GPU 2023.0.0 ガイド
この記事は、CodePlay 社の許可を得て iSUS (IA Software User Society) が作成した 2023 年 1 月 19 日
時点の『oneAPI for AMD* GPUs (beta) 2023.0.0』の日本語参考訳です。原文は更新される可能性があります。原文と翻訳文の内容が異なる場合は原文を優先してください。

ベータ版 oneAPI for AMD* GPU は、開発者が DPC++/SYCL* を利用して oneAPI アプリケーションを作成し、それらを AMD* GPU 上で実行できるようにするインテル® oneAPI ツールキット向けのプラグインです。
注意
これはベータ品質のソフトウェアであり、主要機能のほとんどが含まれていますが、まだ完全ではなく、既知および未確認のバグがあることに留意してください。サポートされる機能の詳細については、「機能」を参照してください。
このプラグインは、HIP バックエンドを DPC++ 環境に追加します。このドキュメントでは、「ベータ版 oneAPIfor AMD* GPU」と「DPC++ HIP プラグイン」が同じ意味で使われています。
oneAPI の詳細については、インテル® oneAPI の概要 (英語) を参照してください。
ベータ版 oneAPI for AMD* GPU の使用を開始するには、「導入ガイド」を参照してください。
導入ガイド
••

導入ガイド
SYCL アプリケーションのデバッグサポート••••機能更新履歴トラブルシューティング
使用許諾契約書 (英語)導入ガイドこのガイドには、DPC++ と DPC++ HIP プラグインを使用して、AMD* GPU で SYCL* アプリケーションを実行する方法を説明します。
これはベータ品質のソフトウェアであり、主要機能のほとんどが含まれていますが、まだ完全ではなく、既知および未確認のバグがあることに留意してください。サポートされる機能の詳細については、「機能」を参照してください。
DPC++ に関連する一般的な情報は、「DPC++ のリソース」の節を参照してください。

ベータ版 oneAPI for AMD* GPU のインストール
サポートされるプラットフォーム
このリリースは、次のプラットフォームで検証されています。
GPU ハードウェアアーキテクチャー オペレーティング・システム

AMD Radeon* Pro W6800 gfx1030•••

Ubuntu* 20.04.5 LTS

HIPGPU ドライバー

4.5.2 21.40.2.40502

このリリースは各種 AMD* GPU と HIP バージョンで動作するはずですが、CodePlay は評価されていないプラットフォームでの正常な動作を保証するものではありません。
このパッケージは Ubuntu* 20.04 でのみテストされていますが、一般的な Linux* システムにインストールできます。
プラグインは、システムにインストールされている HIP のバージョンに依存します。HIP は Windows*と macOS* をサポートしていないため、これらのオペレーティング・システムでは ベータ版 oneAPIfor AMD* GPU パッケージは利用できません。

要件
1. C++ 開発ツールインストールします。
oneAPI アプリケーションをビルドして実行するには、C++ 開発ツールの cmake、gcc、g++、make お
よび pkg-config をインストールする必要があります。
次のコンソールコマンドは、一般的な Linux* ディストリビューションに上記のツールをインストールします。
Ubuntu*$ sudo apt update$ sudo apt -y install cmake pkg-config build-essential

Red Hat* と Fedora*$ sudo yum update$ sudo yum -y install cmake pkgconfig$ sudo yum groupinstall "Development Tools"

SUSE*$ sudo zypper update$ sudo zypper --non-interactive install cmake pkg-config$ sudo zypper --non-interactive install pattern devel_C_C++

次のコマンドで、ツールがインストールされていることを確認します。
$ which cmake pkg-config make gcc g++

次のような出力が得られるはずです。
/usr/bin/cmake/usr/bin/pkg-config/usr/bin/make/usr/bin/gcc/usr/bin/g++

2. DPC++/C++ コンパイラーを含むインテル® oneAPI ツールキット 2023.0.0 をインストールします。
o インテル® oneAPI ベース・ツールキットは、多くの利用環境に適用できます。
o oneAPI for AMD* GPU をインストールするには、インテル® oneAPI ツールキットのバー
ジョン 2023.0.0 が必要です。これよりも古いバージョンにはインストールできません。
3. AMD* GPU 向けの GPU ドライバーと ROCm* ソフトウェア・スタックをインストールします。
o 例えば、ROCm* 4.5 の場合、『ROCm* インストール・ガイド v4.5』 (英語) の手順に従ってください。
o --usecase="dkms,graphics,opencl,hip,hiplibsdk 引数を指定して amdgpuinstall インストーラーを起動し、必要となるすべてのコンポーネントを確実にインストールすることを推奨します。
インストール1. ベータ版 oneAPI for AMD* GPU のインストーラー (英語) をダウンロードします。
2. ダウンロードした自己展開型インストーラーを実行します。
$ sh oneapi-for-amd-gpus-2023.0.0-linux.shoo

インストーラーは、デフォルトの場所にあるインテル® oneAPI ツールキット 2023.0.0 のインストールを検索します。インテル® oneAPI ツールキットが独自の場所にインストールされている場合、--install-dir /path/to/intel/oneapi でパスを指定します。
インテル® oneAPI ツールキットが home ディレクトリー外にある場合、sudo を使用してコマンドを実行する必要があります。

環境を設定1. 実行中のセッションで oneAPI 環境を設定するには、インテルが提供する setvars.sh スクリプトをsource します。
システム全体へのインストールの場合:$ . /opt/intel/oneapi/setvars.sh --include-intel-llvm

プライベート・インストールの場合 (デフォルトの場所):$ . ~/intel/oneapi/setvars.sh --include-intel-llvm
oclang++ などの LLVM ツールにパスを追加するには、--include-intel-llvm オプションを使用します。
o ターミナルを開くたびにこのスクリプトを実行する必要があります。セッションごとに設定を自動化する方法については、「CLI 開発向けの環境変数を設定する」 (英語) など、関連する
インテル® oneAPI ツールキットのドキュメントを参照してください。
2. HIP ライブラリーとツールが環境内にあることを確認します。
o rocminfo を実行します。実行時の表示に明らかなエラーが認められなければ、環境は正しく設定されています。
o 問題があれば、環境変数を手動で設定します。
$ export PATH=/PATH_TO_ROCM_ROOT/bin:$PATH$ export LD_LIBRARY_PATH=/PATH_TO_ROCM_ROOT/lib:$LD_LIBRARY_PATH

ROCm* は通常 /opt/rocm-x.x.x/ にインストールされます。
インストールの確認
DPC++ HIP プラグインのインストールを確認するには、DPC++ の sycl-ls ツールを使用して、SYCL* で利用可能な AMD* GPU があることを確認します。AMD* GPU が利用できる場合、sycl-ls の出力に次のような情報が表示されます。
[ext_oneapi_hip:gpu:0] AMD HIP BACKEND, AMD Radeon PRO W6800 0.0 [HIP 40421.43]•••

上記のように利用可能な AMD* GPU が表示されていれば、DPC++ HIP プラグインが適切にインストールされ、設定されていることが確認できます。
インストールや設定に問題がある場合、トラブルシューティングの「sycl-ls の出力でデバイスが見つからない場合」を確認してください。
利用可能なハードウェアとインストールされている DPC++ プラグインに応じて、OpenCL* デバイス、インテル® GPU、または NVIDIA* GPU など、ほかのデバイスもリストされることがあります。

サンプル・アプリケーションを実行
1. 次の C++/SYCL* コードで構成される simple-sycl-app.cpp ファイルを作成します。
#include <sycl/sycl.hpp>
int main() {// カーネルコード内で使用する 4 つの int バッファーを作成
sycl::buffer<sycl::cl_int, 1> Buffer(4);// SYCL* キューを作成
sycl::queue Queue;// カーネルのインデックス空間サイズ
sycl::range<1> NumOfWorkItems{Buffer.size()};// キューへコマンドグループ (ワーク) を送信
Queue.submit([&](sycl::handler &cgh) {// デバイス上のバッファーへの書き込み専用アクセサーを作成
auto Accessor = Buffer.get_access<sycl::access::mode::write>(cgh);// カーネルを実行
cgh.parallel_for<class FillBuffer>(NumOfWorkItems, [=](sycl::id<1> WIid) {// インデックスでバッファーを埋めます
Accessor[WIid] = (sycl::cl_int)WIid.get(0);});});// ホスト上のバッファーへの読み取り専用アクセサーを作成。
// キューのワークが完了するのを待機する暗黙のバリア
const auto HostAccessor = Buffer.get_access<sycl::access::mode::read>();// 結果をチェック
bool MismatchFound = false;for (size_t I = 0; I < Buffer.size(); ++I) {if (HostAccessor[I] != I) {std::cout << "The result is incorrect for element: " << I<< " , expected: " << I << " , got: " << HostAccessor[I]<< std::endl;
MismatchFound = true;}}if (!MismatchFound) {std::cout << "The results are correct!" << std::endl;}
return MismatchFound;}2. アプリケーションをコンパイルします。
$ clang++ -fsycl -fsycl-targets=amdgcn-amd-amdhsa -Xsycl-target-backend -offload-arch=<ARCH> simple-sycl-app.cpp -o simple-sycl-app

ARCH には GPU のアーキテクチャー (例えば gfx1030) を指定します。次のコマンドで確認できます。
$ rocminfo | grep 'Name: *gfx.*'

出力に GPU アーキテクチャーが表示されます。例えば、次のようになります。
Name: gfx1030

3. アプリケーションを実行します。
$ SYCL_DEVICE_FILTER=hip SYCL_PI_TRACE=1 ./simple-sycl-app

次のような出力が得られます。
SYCL_PI_TRACE[basic]: Plugin found and successfully loaded: libpi_hip.so[ PluginVersion: 11.15.1 ]SYCL_PI_TRACE[all]: Selected device: -> final score = 1500
SYCL_PI_TRACE[all]: platform: AMD HIP BACKENDSYCL_PI_TRACE[all]: device: AMD Radeon PRO W6800
The results are correct!

これで、oneAPI for AMD* GPU の環境設定が確認でき、oneAPI アプリケーションの開発を開始できます。
以降では、AMD* GPU で oneAPI アプリケーションをコンパイルして実行するための一般的な情報を説明します。

DPC++ を使用して AMD* GPU をターゲットにする
AMD* GPU 向けのコンパイル
AMD* GPU 対応の SYCL* アプリケーションをコンパイルするには、DPC++ に含まれる clang++ コンパイ
ラーを使用します。
例:$ clang++ -fsycl -fsycl-targets=amdgcn-amd-amdhsa -Xsycl-target-backend=amdgcnamd-amdhsa --offload-arch=gfx1030 sycl-app.cpp -o sycl-app

次のフラグが必要です。
•-fsycl: C++ ソースファイルを SYCL* モードでコンパイルするようにコンパイラーに指示します。こ•のフラグは暗黙的に C++ 17 を有効にし、SYCL* ランタイム・ライブラリーを自動でリンクします。
-fsycl-targets=amdgcn-amd-amdhsa: AMD* GPU をターゲットに SYCL* カーネルをビルドすることをコンパイラーに指示します。•-Xsycl-target-backend=amdgcn-amd-amdhsa --offload-arch=gfx1030: gfx1030 AMD*GPU をターゲットに SYCL* カーネルをビルドすることをコンパイラーに指示します。
AMD* GPU をターゲットにする場合、GPU の特定のアーキテクチャーを指定する必要があることに注意してください。
利用できる SYCL* コンパイルフラグの詳細は、『DPC++ コンパイラー・ユーザーズ・マニュアル』 (英語) を参照してください。すべての DPC++ コンパイラー・オプションの詳細は、『インテル® oneAPI DPC++/C++ コンパイラー・デベロッパー・ガイドおよびリファレンス』の「コンパイラー・オプション」 (英語) を参照してください。
AMD* GPU でアプリケーションを実行
AMD ターゲットの SYCL* アプリケーションをコンパイルしたら、ランタイムが SYCL* デバイスとして AMD*GPU を選択しているか確認する必要があります。
通常、デフォルトのデバイスセレクターを使用するだけで、利用可能な AMD* GPU の 1 つが選択されます。しかし、場合によっては、SYCL* アプリケーションを変更して、GPU セレクターやカスタムセレクターなど、より正確な SYCL* デバイスセレクターを設定することもあります。
環境変数 SYCL_DEVICE_FILTER を設定して、利用可能なデバイスセットを限定することで SYCL* デバイスセレクターを支援できます。例えば、DPC++ HIP プラグインでサポートされるデバイスのみを許可するには、次のように設定します。
$ export SYCL_DEVICE_FILTER=hip

この環境変数の詳細については、インテル® oneAPI DPC++ コンパイラーのドキュメントで「環境変数」 (英語) 参照してください。
注意: この環境変数は、今後のリリースで廃止される予定です。

DPC++ のリソース•••••インテル® DPC++ の概要 (英語)DPC++ 導入ガイド
DPC++ コンパイラー・ユーザーズ・マニュアル (英語)DPC++ コンパイラーとランタイムのアーキテクチャー設計
DPC++ 環境変数 (英語)SYCL* のリソース••••••SYCL* 2020 仕様
SYCL* アカデミー学習教材 (英語)
Codingame インタラクティブ SYCL* チュートリアル (英語)IWOCL SYCL* トーク (英語)
無料の DPC++ 電子書籍 (英語)SYCL* の最新ニュース、学習教材、プロジェクトの紹介 (英語)SYCL* アプリケーションのデバッグ
この節では、さまざまなデバイスで SYCL* アプリケーションをデバッグするための情報、ヒント、およびポイン
ターについて説明します。
SYCL* アプリケーションのホストコードは、単純に C++ アプリケーションとしてデバッグできますが、カーネルデバッグのサポートやツールは、ターゲットデバイスによって異なる可能性があります。
注意
SYCL* アプリケーションに汎用性がある場合、実際のターゲットデバイスではなく、インテルの OpenCL*
CPU デバイスなど、豊富なデバッグサポートとツールを備えたデバイスでデバッグしたほうが有用なことがあります。

インテルの OpenCL* CPU デバイスでのデバッグ
インテルの OpenCL* CPU デバイスを使用した DPC++ アプリケーションのデバッグについては、『インテル®
oneAPI プログラミング・ガイド』の「DPC++ と OpenMP* オフロードプロセスのデバッグ」の節を参照してください。

ROCm* デバッガーのサポート
ROCm* SDK には rocgdb デバッガーが付属しており、HIP アプリケーションの AMD* GPU 上のカーネルをデバッグできます。
ただし、DPC++ では現在、AMD* GPU ターゲットの SYCL* カーネルに対し、適切なデバッグ情報を生成することができません。そのため、rocgdb を使用して SYCL* カーネルをデバッグすると、次のようなエラーが表示されれることがあります。
Thread 5 "dbg" hit Breakpoint 1, with lanes [0-63], main::{lambda(sycl::_V1::handler&)#1}::operator()(sycl::_V1::handler&) const::{lambda(sycl::_V1::id<1>)#1}::operator()(sycl::_V1::id<1>) const(/long_pathname_so_that_rpms_can_package_the_debug_info/src/rocmgdb/gdb/dwarf2/frame.c:1032:
internal-error: Unknown CFA rule.

デバッグ情報を生成せずにアプリケーションをビルドしても、デバッガーは役立ちます。例えば、カーネルが無効なメモリーアドバイスなどのエラーをスローする場合、rocgdb を使用してプログラムを実行することができます。エラー発生時にブレークして、disas コマンドを使用してエラーを引き起こした場所のカーネル・アセンブリー行を確認できます。

機能
コア機能
機能

サポート

コンテキスト内の複数デバイス いいえ
サブグループ (sub-group)

部分的 1

グループ関数/アルゴリズム

部分的 1

整数関数

はい

数学関数 (スカラー)はい

数学関数 (ベクトル)

部分的 1

数学関数 (marray)

いいえ

共通関数

はい

ジオメトリー関数

はいリレーショナル関数

はいatomic ref

はいオペレーティング・システム

Linux*

バッファーの再解釈

はいstream

いいえ

デバイスイベントいいえ

グループの非同期コピー

はいプラットフォームの get info

はい

カーネルの get info

はいsycl::nan と sycl::isnan はい
デバイスセレクター

いいえ

階層的並列化はいホストタスクはいインオーダー・キュー

はいリダクション

部分的 1

キューのショートカット

はいvec

はい

marrayはいerrcはい匿名カーネルラムダ

はい

機能を評価するマクロ

はいsycl::span

はいsycl::dynamic_extent

いいえ 2

sycl::bit_cast

はい

機能

サポート

aspect_selector

いいえ

カーネルバンドル

いいえ

特殊化定数

いいえ

非コア機能
機能

サポート

image

いいえ

fp16 データタイプ

いいえ

fp64 データタイプ

はいprefetch

はいUSM

ホスト、デバイス、共有

USM アトミックホスト割り当て

いいえ

USM アトミック共有割り当て

いいえ

USM システムに割り当て

はいSYCL_EXTERNAL

いいえ

アトミックメモリーの順序付け

relaxedアトミック・フェンス・メモリーの順序付け

いいえ

アトミック・メモリー・スコープ

work_group

アトミック・フェンス・メモリーのスコープ

いいえ

64 ビット・アトミック

いいえ

バイナリー形式

AMDGCN

デバイスのパーティション化

いいえ

ホストデバッグ可能デバイス

いいえ

オンラインコンパイル

いいえ

オンラインリンカー

いいえ

キューのプロファイル

はい

mem_advise

いいえ

バックエンド仕様

いいえ

アプリケーション・バックエンドの相互運用 いいえ
カーネル・バックエンドの相互運用

いいえ

ホストタスク (ハンドルと相互運用)

いいえ

reqd_work_group_size

いいえキャッシュビルド結果

いいえ

ビルドログ

いいえ

ビルトインカーネル関数なし拡張機能機能サポート

uniform

いいえ

USM アドレス空間 (デバイス、ホスト)

部分的 3

固定ホストメモリーの使用

はいサブグループ・マスク (+ グループ投票)

いいえ

静的ローカルメモリー使用量照会

いいえ

sRGB イメージ

いいえ

デフォルト・プラットフォーム・コンテキスト

はいメモリーチャネル

いいえ

最大ワークグループ照会

一部分

結合行列

いいえ

すべて制限 (restrict all)

いいえ

プロパティー・リスト (property list)

いいえ

カーネル・プロパティー (kernel properties)

いいえ

SIMD 呼び出し

いいえ

低レベルデバイス情報

いいえ

カーネルキャッシュ設定

いいえ

FPGA lsu

いいえ

FPGA reg

いいえ

データ・フロー・パイプ

いいえ

キューに投入されたバリア

いいえフィルターセレクター

はいグループソート

はい

フリー関数の照会

はい

明示的な SIMD

いいえ

discard_queue_events

部分的 1

device_if

いいえdevice_global

いいえ

C と C++ 標準ライブラリーのサポート

いいえ

カーネルでの assert

いいえbuffer_location

いいえ

accessor_property_list (+ no_offset、no_alias) はい
グループ・ローカル・メモリー

はいprintf

いいえ

ext_oneapi_bfloat16

いいえ

拡張デバイス情報いいえ1 (1、2、3、4、5) 一部のテストで失敗
2

numeric_limits<size_t>::max() の使用

3

https://github.com/intel/llvm/pull/6289 に追加 (未テスト)

更新履歴
2023.0.0
oneAPI for AMD* GPU の最初のベータリリースです。
このリリースは、intel/llvm repository at commit 0f579ba (英語) から作成されました。

新機能•

HIP バックエンドのベータサポート

SYCL* コンパイラー••••

デバイスでの assert をサポート
ローカル・メモリー・アクセサーのサポート
グループ集合関数のサポート
sycl::ext::oneapi::sub_group::get_local_id のサポート

SYCL* ライブラリー•

atomic64 デバイス機能の照会をサポート•••

SYCL* キューごとに複数の HIP ストリームをサポート
相互運用のサポート
sycl::queue::submit_barrier のサポート

トラブルシューティング
この節では、トラブルシューティングのヒントと一般的な問題の解決方法について説明します。ここで説明する
方法で問題が解決しない場合は、Codeplay のコミュニティー・サポート・ウェブサイト (英語) からサポートリクエストをお送りください。完全なサポートは保証できませんが、できる限り支援させていただきます。サポー
トリクエストを送信する前に、ソフトウェアが最新バージョンであることを確認してください。
問題は、oneAPI DPC++ コンパイラーのオープンソース・リポジトリー (英語) からも報告できます。

icpx でビットコード出力が無効になる
現在のバージョンの icpx には、NVIDIA* または AMD* ターゲット向けにコンパイルする際に既知の問題があり、次のエラーが出力される場合があります。
LLVM ERROR: Bitcode output disabled because proprietary optimizations have beenperformed.

これは次のリリースで修正される予定ですが、それまでは NVIDIA* または AMD* GPU をターゲットとする場
合、icpx 実行ファイルの代わりに、このガイドで説明されている clang++ 実行ファイルを直接使用してください。

sycl-ls の出力にデバイスが表示されない
sycl-ls がシステム上の期待されるデバイスを報告しない場合:

1. システムに互換性のあるバージョンの CUDA* または ROCm* ツールキット (それぞれ CUDA* とHIP プラグイン向け)、および互換性のあるドライバーがインストールされていることを確認してください。
2. nvidia-smi または rocm-smi がデバイスを正しく認識できることを確認します。
3. プラグインが正しくロードされていることを確認します。これは、環境変数 SYCL_PI_TRACE に 1 を設定して、sycl-ls を再度実行することで分かります。
例:$ SYCL_PI_TRACE=1 sycl-ls

次のような出力が得られるはずです。
SYCL_PI_TRACE[basic]: Plugin found and successfully loaded: libpi_opencl.so[ PluginVersion: 11.15.1 ]SYCL_PI_TRACE[basic]: Plugin found and successfully loaded:libpi_level_zero.so [ PluginVersion: 11.15.1 ]SYCL_PI_TRACE[basic]: Plugin found and successfully loaded: libpi_cuda.so[ PluginVersion: 11.15.1 ][ext_oneapi_cuda:gpu:0] NVIDIA CUDA BACKEND, NVIDIA A100-PCIE-40GB 0.0[CUDA 11.7]

インストールしたプラグインが sycl-ls の出力に表示されない場合、SYCL_PI_TRACE に -1 を設定して再度実行することで、詳細なエラー情報を取得できます。
$ SYCL_PI_TRACE=-1 sycl-ls

大量の出力が得られますが、次のようなエラーが表示されているか確認してください。
SYCL_PI_TRACE[-1]:dlopen(/opt/intel/oneapi/compiler/2023.0.0/linux/lib/libpi_hip.so) failedwith <libamdhip64.so.4: cannot open shared object file: No such file ordirectory>
SYCL_PI_TRACE[all]: Check if plugin is present.Failed to load plugin:libpi_hip.sooo

CUDA* プラグインには、CUDA* SDK で提供される libcuda.so と libcupti.so が必要です。
HIP プラグインには、ROCm* の libamdhip64.so が必要です。

CUDA* または ROCm* のインストールと、環境が適切に設定されていることを確認してください。また、LD_LIBRARY_PATH が上記のライブラリーを検出できる場所を指しているか確認してください。
4. SYCL_DEVICE_FILTER または SYCL_DEVICE_ALLOWLIST などのデバイスフィルター環境変数が設定されていないことを確認します (SYCL_DEVICE_FILTER が設定されていると、sycl-ls は警告を表示します)。

不正バイナリーエラーの扱い
CUDA* または HIP をターゲットにする SYCL* アプリケーションを実行すると、特定の状況でアプリケーションが失敗し、無効なバイナリーであることを示すエラーが報告されることがあります。例えば、CUDA* の場合はCUDA_ERROR_NO_BINARY_FOR_GPU がレポートされる場合があります。
これは、選択された SYCL* デバイスに適切でないアーキテクチャーのバイナリーが送信されたことを意味します。この場合、次の点を確認してください。
1. アプリケーションが、利用するハードウェアのアーキテクチャーと一致するようにビルドされていることを確認してください。
o CUDA* 向けのフラグ: -Xsycl-target-backend=nvptx64-nvidia-cuda --cudao

gpu-arch=<arch>
HIP 向けのフラグ: -Xsycl-target-backend=amdgcn-amd-amdhsa --offloadarch=<arch>

2. 実行時に適切な SYCL* デバイス (ビルドされたアプリケーションのアーキテクチャーに一致するもの)が選択されていることを確認します。環境変数 SYCL_PI_TRACE=1 を設定すると、選択されたデバイスに関連するトレース情報を表示できます。以下に例を示します。
SYCL_PI_TRACE[basic]: Plugin found and successfully loaded: libpi_opencl.so[ PluginVersion: 11.16.1 ]SYCL_PI_TRACE[basic]: Plugin found and successfully loaded:libpi_level_zero.so [ PluginVersion: 11.16.1 ]SYCL_PI_TRACE[basic]: Plugin found and successfully loaded: libpi_cuda.so[ PluginVersion: 11.16.1 ]SYCL_PI_TRACE[all]: Requested device_type: info::device_type::automatic
SYCL_PI_TRACE[all]: Requested device_type: info::device_type::automatic
SYCL_PI_TRACE[all]: Selected device: -> final score = 1500
SYCL_PI_TRACE[all]: platform: NVIDIA CUDA BACKENDSYCL_PI_TRACE[all]: device: NVIDIA GeForce GTX 1050 Ti

3. 誤ったデバイスが選択されいる場合、環境変数 SYCL_DEVICE_FILTER を使用して SYCL* デバイスセレクターが選択するデバイスを変更できます。インテル® oneAPI DPC++/C++ コンパイラーのドキュメントにある「環境変数」 (英語) の節を参照してください。
注意
SYCL_DEVICE_FILTER 環境変数は、今後のリリースで廃止される予定です。

oneAPI for AMD* GPU 使用許諾契約書
重要 - ソフトウェアを複製、インストール、または使用する前に使用許諾契約書 (英語) をお読みになり、同意する必要があります。