【问题标题】:Why SYCL supports openCL 1.2 or above?为什么 SYCL 支持 openCL 1.2 或更高版本?
【发布时间】:2018-05-22 18:54:51
【问题描述】:

我是一名学生。我的问题可能很愚蠢,但我想澄清一下。我有一个带有 OpenCL 1.1 版本的 Vivante GPU 的设备。我想在 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 的可行性如何?

【问题讨论】:

    标签: tensorflow opencl gpu opencl-c


    【解决方案1】:

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

    【讨论】:

    • 非常感谢您的回复。我在这里看到了一张图片techenablement.com/wp-content/uploads/2014/08/…,它描述了在 opencl 和 SYCL 之间没有像 SPIR 这样的中间表示的可能性。
    • SPIR 表示不支持 openCL 1.1 的主要区别是什么?
    • 既然我想用 openCL 1.1 在 GPU 上运行 tensorflow 代码,我应该如何着手解决这些问题?我应该尝试编写什么代码才能在这方面取得成功?
    • 您可以使用 SYCL 的互操作模式来调度 OpenCL C 内核而不是 C++ 内核,但这会减少您可以使用 SYCL 执行的操作。特别是,您不能使用 TensorFlow 方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-11
    • 1970-01-01
    • 2018-12-14
    • 2020-09-13
    • 2022-11-08
    相关资源
    最近更新 更多