【问题标题】:Opencl migration internalsOpencl 迁移内部结构
【发布时间】:2019-09-05 09:18:06
【问题描述】:

我对 OpenCL 内存传输函数如何在下面运行(迁移、读取/写入缓冲区、映射/取消映射)感兴趣。我找不到任何 OpenCL 的开源实现(对我来说,英特尔的可能很好),只是文档中的解释并没有让我知道发生了什么,例如,当我调用 clEnqueueMigrateMemObjects 时:在此迁移期间发生了什么调用,哪些模块处于活动状态,这种迁移是如何发生的,它在底层使用了什么机制,它是否使用了一些缓存机制。

有什么好的资料可以阅读吗?

我现在正在探索 OpenCL 如何将数据传递到 FPGA。 Xilinx 目前使用本地 OpenCL 实现,存在于机器上,外加一些扩展。

【问题讨论】:

    标签: memory opencl


    【解决方案1】:

    如果您正在寻找低级信息(特定实现如何实现这些调用),可能唯一的来源就是实现。

    有一些关于 GPU 实现的开源 OpenCL:

    树莓派 3(测试版):https://github.com/doe300/VC4CL

    Vulkan 上的 OpenCL(测试版):https://github.com/kpet/clvk

    Mesa Clover(仅支持 1.1):https://cgit.freedesktop.org/mesa/mesa/log/?qt=grep&q=clover

    AMD ROCm:https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime

    英特尔的 NEO 来源(他们的新 OpenCL 实现)在这里:https://github.com/intel/compute-runtime

    我不知道 Xilinx 为其实施提供了资源,因此,如果您想知道 Xilinx 到底发生了什么,您最好的机会可能是在 Xilinx 论坛上或通过一些官方支持询问。

    【讨论】:

    • 感谢您的回答。我之前看过 Intel 和 AMD 的源代码,但直到最后都没有设法跟踪 clEnqueueMigrateMemObjects 实现的链,它在一种情况下停止在一些排队处理程序上,在另一种情况下停止在自动代码生成上。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-12
    • 2015-05-18
    相关资源
    最近更新 更多