DPCT1093#

メッセージ#

<Device ID> のデバイスが意図するものではない可能性があります。必要に応じて、選択デバイスを調整します。

詳細な説明#

cudaSetDevice 関数は、コードを実行するデバイスを設定します。SYCL* 並行すると、デバイス選択のロジックを変更する必要が生じることがあります。

例えば、以下のオリジナル CUDA* コードについて考えてみます。


1  int main(int argc, char **argv) { 
2   cudaSetDevice(1);// 元のコードではデバイス 1 が最適な選択
3   foo(argc, argv); 
4     ... 
5   return 0; 6}

このコードは、以下の SYCL* コードに移行されます。


1  int main(int argc, char **argv) { 
2   /* 
3   DPCT1093:0: The "1" device may be not the one intended for use.Adjust the 
4   selected device if needed.
5   */ 
6   dpct::select_device(1); // デバイス 1 は SYCL では最適な選択ではない可能性があります 
7   foo(argc, argv); 
8     ... 
9   return 0; 
10 }

このコードを以下のように手動で調整します。


1  int main(int argc, char **argv) { 
2   // ユーザーはコマンド `sycl-ls` でデバイス リストを確認し、環境変数 
3   // `ONEAPI_DEVICE_SELECTOR` を使用してデバイスをフィルターできます 
4   dpct::select_device(0); 
5   foo(argc, argv); 
6     ... 
7   return 0; 
8}

修正方法の提案#

必要に応じて、デバイスの選択ロジックを確認して調整します。