gpt4 book ai didi

opencl - 如何获取内核信息

转载 作者:行者123 更新时间:2023-12-04 18:27:14 28 4
gpt4 key购买 nike

我想获得有关已编译 OpenCL 内核的以下信息 - 类型列表、参数顺序(如果可能 - 带有内存和访问分类器)。内核是在应用程序运行时从源代码构建的。

实际上,在 OpenCL 1.2 中已经存在适用于此类查询的函数 - clGetKernelArgInfo ,但由于项目限制,我必须找到使用纯 OpenCL 1.0 实现此类功能的方法,无需任何扩展。

目前,我正在考虑三种方法:

  • 编写简单的 Ansi C 解析器以直接从 OpenCL 内核的源代码中获取有关内核签名的信息
  • 在 OpenCL 代码中使用宏来标记内核参数以进行简单的应用程序内解析(通过扩展 this idea )
  • 使用宏和类助手定义内核参数的最可能组合列表(由于我的项目的限制,可以在 3-5 种常见参数类型下操作)

  • 我的问题:还有其他方法可以获取有关编译内核的信息吗?

    我想使用此信息通过封装对 clCreateBuffer 的调用来减少客户端代码中 OpenCL 例程的数量。 , clEnqueueWrite/阅读, clSetKernelArg在小包装器中,它应该检查提供的参数,分配设备端 ptr,从/向主机复制数据等等。

    最佳答案

    Khronos WebCL Validator给你相当于 clGetKernelArgInfo,包括所有限定符。

    必要的缺点是它是一个完整的解析器,基于 Clang/LLVM。与典型的 OpenCL 编译器运行所需的时间大致相同(并非巧合),并且会使可执行文件的大小增加大约 10 兆字节。

    关于opencl - 如何获取内核信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19956798/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com