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 }
このコードは、以下の SYCL* コードに移行されます。
1 int main( int argc, char** argv) {
2 /* DPCT1093 */
3 dpct::dev_mgr::instance().select_device(1); // Device 1 maybe not the best choice in SYCL. 4 foo(argc, argv);
5 }
このコードを以下のように手動で調整します。
1 int main( int argc, char** argv) {
2 dpct::dev_mgr::instance().select_device(0);
3 foo(argc, argv);
4 }
修正方法の提案#
必要に応じて、デバイスの選択ロジックを確認して調整します。