おさらい
似たような技術にNVIDIA CUDAやAMD ROCmがある
Intel oneAPIにはCUDAソースから移行するためのツール Data Parallel C++ Compatibility Tool(DPCT) が用意されている
DPCTの使い方
DPCTは、開発・実行環境であるIntel oneAPI Base Toolkitに含まれている
DPCTを使うには移行したいアプリのCUDAソースの他に、CUDAランタイムヘッダーが必要
注意
2020/10/10現在最新のIntel oneAPI Base Toolkit beta09は、CUDA11.1に対応していません
以下ではCUDA10.2を使っています
VS2019での例
シンプルなCUDAプロジェクトをDPC++プロジェクトに移行する手順
プロジェクトウィザードでCUDAプロジェクトを作成
Migrate Project to DPC++
メニューを選択移行したいCUDAプロジェクトファイルの指定
Additional options
にCUDAランタイムヘッダーがあるディレクトリを指定
ex) --cuda-include-path="C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\include"
- 既知の不具合回避
kernel.dp.cppの以下に#include <algorithm>
を挿入
#include <CL/sycl.hpp> #include <algorithm> /* INSERTED */ #include <dpct/dpct.hpp> #include <stdio.h> int addWithCuda(int *c, const int *a, const int *b, unsigned int size); ...
- ビルド・実行