DPCT1017#

メッセージ#

<CUDA API name> 呼び出しの代わりに <SYCL API name> 呼び出しが使用されます。この 2 つの呼び出しは同じ機能を提供するものではありません。生成されたコードの潜在的な精度やパフォーマンスの問題を確認してください。

説明#

インテル® DPC++ 互換性ツールは、同機能の SYCL* 関数が見つからなかったため、最も近いものを使用しました。これは、コードの精度やパフォーマンスに影響する可能性があります。コードの正当性とパフォーマンスを検証してください。

修正方法の提案#

コードの正当性とパフォーマンスを検証してください。

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

1__global__ void k(float *out, float *in) { 
2 *out = normf(3, in); 
3}

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

1void k(float *out, float *in) { 
2 /* 3 DPCT1017:0: The dpct::length call is used instead of the normf call. These two 
4 calls do not provide exactly the same functionality.Check the potential 
5 precision and/or performance issues for the generated code.6 */ 
7 *out = dpct::length(in, 3); 
8}

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

1#include <sycl/ext/intel/math.hpp> 
2void k(float *out, float *in) { 
3 /* 
4 If the extension API sycl::ext::intel::math::norm is available, the following 
5 line can alternately be migrated to *out = sycl::ext::intel::math::norm(3, in); 
6 */ 
7 *out = dpct::length(in, 3); 
8}