OpenCL不支持C++内核语言(设备语言)

在*.cl文件(或字符串)中不支持用class、template等!

在*.cl文件(或字符串)中不支持给struct定义构造函数或成员函数!

在*.cl文件(或字符串)中不支持函数默认参数,例如:void test(int a, int b = 1)

以上,不管是OpenCL 1.2,还是OpenCL 3.0版本,都不支持C++;这两个版本是硬件支持最多的。所以,就不要怀疑自己语法那里不对,而是不支持、不支持、不支持!!!

-------------------------------------------------------------------------------------------------

而中间的临时提议的版本2.2(好像没有硬件厂家支持),提出的规范中给出了C++的标准,见文档“The C++ for OpenCL 1.0 and 2021 Programming Language Documentation”,按照文档头文件中有“__OPENCL_CPP_VERSION__”的字样。

The C++ for OpenCL 1.0 and 2021 Programming Language Documentation 不支持!

其他参考:

  1. https://www.coder.work/article/808577
  2. https://stackoverflow.com/questions/38251762/is-it-possible-to-write-opencl-kernels-in-c-rather-than-c
  3. https://blog.csdn.net/aggs1990/article/details/134307065

你可能感兴趣的:(OpenCL)