首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取内核信息

如何获取内核信息
EN

Stack Overflow用户
提问于 2013-11-13 14:49:39
回答 1查看 1.2K关注 0票数 4

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

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

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

  1. 编写简单的Ansi C解析器,直接从OpenCL内核的源代码获取内核签名信息
  2. 在OpenCL代码中使用宏来标记内核的参数,以便进行简单的应用程序内解析(通过扩展这一理念)
  3. 使用宏和类帮助器定义最可能组合内核参数的列表(由于我的项目的约束,可以在3-5公共arg-类型下操作)

我的问题是:还有其他方法来获取编译内核的信息吗?

我想用这个信息来减少客户端代码中的OpenCL例程,方法是在小包装器中封装对clCreateBufferclEnqueueWrite/Read、clSetKernelArg的调用,这些调用应该检查提供的params,分配设备端ptrs,从主机复制数据等等。

EN

回答 1

Stack Overflow用户

发布于 2013-12-05 09:15:28

Khronos WebCL校验器提供了相当于clGetKernelArgInfo的内容,包括所有的限定符。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19956798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档