为什么SYCL支持openCL 1.2或以上版本?

Why SYCL supports openCL 1.2 or above?

我是学生。我的问题可能很愚蠢,但我想澄清一下。我有一个带有 Vivante GPU 和 openCL 1.1 版本的设备。我想 运行 在 GPU 上支持 SYCL 的 tensorflow 示例代码。但在尝试 Tensorflow 示例代码之前,我想在 GPU 上使用 openCL 1.1 尝试 SYCL 示例代码。

我见过几个 SYCL 实现,比如 computeCPP、triSYCL、sycl-gtx所有实现都支持 openCL 1.2 或更高版本。

有谁知道 SYCL 不支持 openCL 1.1 的原因吗?

尝试修改 SYCL 开源代码以支持 openCL 1.1 的可行性如何?

SYCL 1.2 需要 OpenCL 1.2 的主要原因是因为 Khronos 中间表示 SPIR 1.2 requires 它。如果没有 SPIR 或任何其他中间表示,SYCL 实现无法将 C++ 代码编译为设备二进制文件,并且需要将 C++ 转换为 OpenCL C,这是一个很大的问题。