2016-09-22 14 views
2

私は別のファイルに、「「」3で、コードのカーネルの一部を保存しようとしている私は、テキストファイルとbinファイル、および読み取りとして保存しようとしました。しかし、私はそれに成功していませんでした。私はちょうどcl.Programにカーネルコードを貼り付けコピーした場合、「しかし、(、それは動作します。保管カーネル - PyOpenCL

をので、抽象長いカーネルコードへの道が出て、別のファイルにありますか?これはあなたに感謝、の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の第2引数()関数で、私は別のファイルに移動するためにwan't。

+0

コードを表示したいことがあります。 – DrC

+0

質問はコードに固有のものではなく、アーキテクチャ特有のものです。しかし、私はそれがより明確にするために、サンプルコードを追加しました:) – RandN88

答えて

1

するだけで、あなたのカーネルのコードを入れてその後、プレーンテキストファイル、および内容を取得するためにopen(...).read()を使用します。

foo.cl

__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() 
+0

私は、CLファイルの中に「「」を加えた、そしてそれは奇妙なエラーを投げていた。ありがとう! – RandN88

0

カーネルコードはまた、foo.cのとして.Cファイルに格納することができます。 その方法は、その簡単にXcodeのようなエディタで編集します。 同じ方法で読むことができます

prg = cl.Program(ctx, open('foo.c').read()).build()