CUDA* から SYCL* API へのマッピング照会#

--query-api-mapping オプションを使用して、指定された CUDA* API と機能的に互換性のある SYCL* API を検出します。API 照会機能は、手動コード移行を支援し、SYCL* API を理解するのに役立ちます。

次の例では、cudaMalloc 関数に対して機能的に互換性のある SYCL* API を照会します。

$ dpct --query-api-mapping=cudaMalloc 

  CUDA API: 
    cudaMalloc(pDev /*void ***/, s /*size_t*/); 
  次のように移行されます:
    *pDev = (void *)sycl::malloc_device(s, dpct::get_in_order_queue());

Linux* では、tab キーを使用して、--query-api-mapping オプションに指定された CUDA* API 名を自動補完できます。次に例を示します。

  1. --query-api-mapping オプションに部分的な CUDA* 関数名 “cudaMa” を指定します。

    dpct --query-api-mapping=cudaMa
  2. tab を押します。

    CUDA* API 名は cudaMalloc に自動補完されます。

    dpct --query-api-mapping=cudaMalloc

インテル® DPC++ 互換性ツールは、CUDA* API 名のあいまい性のある一致もサポートします。次に例を示します。

$ dpct --query-api-mapping=cudamalloc 

  CUDA API: 
    cudaMalloc(pDev /*void ***/, s /*size_t*/); 
  次のように移行されます:
    *pDev = (void *)sycl::malloc_device(s, dpct::get_in_order_queue());