创建OpenCL Bitcode时,Xcode 5提供了一种使用“-cl-std”标志defined by the OpenCL standard来控制版本的方法。
根据标准,似乎可以省略此标志以创建与OpenCL C 1.0兼容的bitcode。
但是,当我在Xcode中省略此标志时(通过复制粘贴它生成的命令,删除此标志并手动运行),当标志为“时,结果与结果相同 -Cl-STD = 1.1" 。
是否可以创建与OpenCL C 1.0兼容的bitcode(适用于Mac)?
答案 0 :(得分:1)
实际上,标准表示如果省略-cl-std
标志,程序将针对目标设备支持的OpenCL C版本进行编译:
如果未指定-cl-std构建选项,则 CL_DEVICE_OPENCL_C_VERSION用于选择OpenCL C的版本 在为每个设备编译程序时使用。
如果您使用的是离线编译器,则不一定是针对特定设备,默认值可能是实现定义的。使用OpenCL C 1.0编译程序没有OpenCL标准标志。
此外,-cl-std
标志表示编译程序时应使用哪个OpenCL C 语言版本。这完全独立于用于存储该编译程序的bitcode的格式。程序可以编译为1.0,1.1和1.2,并且仍然生成相同的bitcode。从Apple的文档中可以看出,是否可以使用与1.0之后的所有OpenCL设备兼容的单个bitcode;他们似乎认为bitcode是shipping OpenCL binaries中最便携的方式,但没有明确说明这种兼容性。