是否可以在GPU中运行纯C 代码

Is it possible to run piece of pure C++ code in GPU

本文关键字:运行 代码 GPU 是否      更新时间:2023-10-16

我不太了解opencl,但我知道C/C API要求程序员将OpenCL代码作为字符串提供。但是最近我发现了 arrayfire 库,不需要字符串代码来调用一些计算。我想知道它是如何工作的(它是开源的,但代码有点令人困惑)。是否可以使用OpenCL后端来平行编写,以调用任何编译(例如x86)代码如下:

template <typename F>
void parallel_for(int starts, int ends, F task) //API
{ /*some OpenCL magic */ }
//...
parallel_for(0, 255, [&tab](int i){ tab[i] *= 0.7; } ); //using

ps:我知道我对99%的乐观

您无法使用标准OPENCL真正从设备调用C 主机代码。您可以使用SYCL,即单源C 编程的Khronos标准。SYCL允许将C 直接编译为设备代码,而无需OpenCL字符串。您可以从SYCL内核内调用任何C 功能(只要可用源代码)即可。Sycl.tech具有更多链接和更新的信息。