Xcode 为OpenCL C v1.0创建OpenCL位代码

Xcode 为OpenCL C v1.0创建OpenCL位代码,xcode,macos,xcode5,opencl,gpgpu,Xcode,Macos,Xcode5,Opencl,Gpgpu,创建OpenCL位代码时,Xcode 5提供了一种使用“-cl std”标志控制版本的方法 根据该标准,为了创建与OpenCLC1.0兼容的位代码,似乎可以省略该标志 但是,当我在Xcode中省略该标志时(通过复制粘贴它生成的命令,删除该标志并手动运行),结果与标志为“-cl std=1.1”时的结果相同 是否可以创建与OpenCL C 1.0(用于Mac)兼容的位代码?实际上,该标准指出,如果您省略-cl std标志,则将为目标设备支持的OpenCL C版本编译程序: 如果未指定–cl std

创建OpenCL位代码时,Xcode 5提供了一种使用“-cl std”标志控制版本的方法

根据该标准,为了创建与OpenCLC1.0兼容的位代码,似乎可以省略该标志

但是,当我在Xcode中省略该标志时(通过复制粘贴它生成的命令,删除该标志并手动运行),结果与标志为“-cl std=1.1”时的结果相同


是否可以创建与OpenCL C 1.0(用于Mac)兼容的位代码?

实际上,该标准指出,如果您省略
-cl std
标志,则将为目标设备支持的OpenCL C版本编译程序:

如果未指定–cl std build选项,则 CL_设备_OPENCL_C_版本用于选择OPENCL C的版本 为每个设备编译程序时使用

如果您使用的是脱机编译器,则不一定针对特定设备,默认值可能是实现定义的。对于使用OpenCLC1.0编译程序,没有OpenCL标准标志


此外,
-cl std
标志指示编译程序时应使用哪个OpenCLC语言版本。这完全独立于用于存储已编译程序的位代码格式。一个程序可以编译为1.0、1.1和1.2,但仍然生成相同的位码。从苹果公司的文档中不清楚是否有可能从1.0开始使用一个与所有OpenCL设备兼容的位码;他们似乎认为比特码是最具可移植性的编码方式,但没有明确说明这种兼容性。

我发现比特码与源代码不兼容,甚至与生成它们的计算机也不兼容。至少在一个旧的MBP(2009年底)上,带有NVIDIA 9400M(我可以使用它进行测试)。