DPCT1093
目次
DPCT1093#
メッセージ#
<Device ID> のデバイスが意図するものではない可能性があります。必要に応じて、選択デバイスを調整します。
詳細な説明#
cudaSetDevice
関数は、コードを実行するデバイスを設定します。SYCL* 並行すると、デバイス選択のロジックを変更する必要が生じることがあります。
例えば、以下のオリジナル CUDA* コードについて考えてみます。
1 int main(int argc, char **argv) {
2 cudaSetDevice(1);// Device 1 is the best choice in the original code.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); // Device 1 maybe not the best choice in SYCL.
7 foo(argc, argv);
8 ...
9 return 0;
10 }
このコードを以下のように手動で調整します。
1 int main(int argc, char **argv) {
2 // User can check device list by command `sycl-ls` and filter the device by using
3 // environment variable `ONEAPI_DEVICE_SELECTOR`.
4 dpct::select_device(0);
5 foo(argc, argv);
6 ...
7 return 0;
8 }
修正方法の提案#
必要に応じて、デバイスの選択ロジックを確認して調整します。