我正在尝试将代码的内核部分与3“”“存储在一个不同的文件中。我尝试将其保存为文本文件和bin文件,并将其读入,但我没有找到成功它开始给我一个错误,说“”缺失,或者“缺失”。 “但是,如果我只是将内核代码复制粘贴到cl.Program中(它可以工作。
那么,有没有办法将长内核代码抽象到另一个文件中?这是python特有的,谢谢!
#Kernel function
prg = cl.Program(ctx, """
__kernel void sum(__global double *a, __global double *b, __global double *c)
{
int gid = get_global_id(0);
c[gid] = 1;
}
""").build()
所以几乎所有内容都在“”“”“里面,cl.Program()函数的第二个参数,我想进入一个不同的文件。
只需将内核代码放在纯文本文件中,然后使用open(...).read()
获取内容:
foo.除了
__kernel void sum(__global double *a, __global double *b, __global double *c)
{
int gid = get_global_id(0);
c[gid] = 1;
}
Python代码
prg = cl.Program(ctx, open('foo.cl').read()).build()
内核代码也可以作为foo.c存储在.c文件中。这样在xcode等编辑器中编辑更容易。它可以以相同的方式阅读
prg = cl.Program(ctx, open('foo.c').read()).build()