除了传统的OpenCL C内核语言外,OpenCL 2.1和2.2还引入了OpenCL C ++内核语言。我必须在支持C但不支持C ++的环境中使用OpenCL。 OpenCL C中是否有OpenCL 2.2以外的OpenCL 2.2特性,但OpenCL C中没有这些特性?
我是否必须使用C ++编译器(编写C ++主程序)才能使用OpenCL C ++内核语言?我的理解是,一些OpenCL实现包括一个有限的C ++编译器来处理OpenCL C ++内核语言。
答案 0 :(得分:3)
我没有尝试过,但我认为你不需要C ++编译器在OpenCL 2.1 / 2.2中使用C ++内核语言,因为你只是将源代码提交给驱动程序进行编译(使用它内置的) C ++编译器)。当然,你的宿主程序必须是C,而不是C ++。
答案 1 :(得分:0)
要构建GPU OpenCL 2.1代码,OpenCL编译器必须支持C ++。您必须至少在GPU端支持C ++(自动,因为它是包含它的OpenCL编译器)。
除此之外,您的主机代码可以是C代码。