使用#include加载OpenCL代码
我很久以前就看到过使用 hlsl/glsl 着色器代码完成此操作 - 在源代码文件上使用 #include
将代码粘贴到 char*
中,这样就不会文件 IO 发生在运行时。
如果我将它表示为伪代码,它看起来有点像这样:
#define CLSourceToString(filename) " #include "filename" "
const char* kernel = CLSourceToString("kernel.cl");
现在当然,#define
不起作用,因为它只是尝试使用这些引号来启动字符串。
I've seen this done long ago with hlsl/glsl shader code -- using an #include
on the source code file that pastes the code into a char*
so that no file IO happens at runtime.
If I were to represent it as pseudo-code, it would look a little like this:
#define CLSourceToString(filename) " #include "filename" "
const char* kernel = CLSourceToString("kernel.cl");
Now of course that #define
isn't going to work because it'll just try to use those quotation marks to start strings.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
请参阅 OpenCL 的子弹物理引擎使用 如何对 内核。
在 C++ / C 源代码中
在 OpenCL 源代码中
See the bullet physics engines use of OpenCL for how to do this to a kernel.
In C++ / C source
In the OpenCL source
根据 这,这是不可能的,但您可以使用 xxd -i 来达到相同的效果。
According to this, it's not possible, but you can use
xxd -i
to archieve the same effect.