DPCT1051

メッセージ

SYCL* は、<property name> と機能的に互換性のあるデバイス・プロパティーをサポートしていません。<migrated token> に移行されました。特定のデバイスの <migrated token>値の調整が必要となる場合があります。

詳細な説明

SYCL* は現在、すべての CUDA* デバイス・プロパティーと機能的に互換性があるわけではありません。このようなプロパティーが検出され、整数タイプは -1 に移行されます。ブールタイプは、コンテキストに応じて false または true に変換されます。

修正方法の提案

ロジックを確認して、手動で調整してください。

ヘルプが必要な場合は、SYCL* への移行フォーラム (英語) にアクセスしてください。

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


1 void foo(cudaDeviceProp deviceProp) { 
2 size_t a = deviceProp.totalConstMem; 
3...
4 }

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


1 void foo(dpct::device_info deviceProp) { 
2 /* 
3 DPCT1051:0: SYCL does not support a device property functionally compatible 
4 with totalConstMem. It was migrated to get_global_mem_size. You may need to 
5 adjust the value of get_global_mem_size for the specific device.
6 */ 
7 size_t a = deviceProp.get_global_mem_size(); 
8    ... 
9 }

このコードは次のように書き換えられます。


1 void foo(dpct::device_info deviceProp) { 
2 size_t a = deviceProp.get_global_mem_size(); 
3    ... 
4 }