Nvidia実装でwrite_imagef()
関数を使用してプログラムをコンパイルできません。 私はビルドエラーで失敗し、次のプログラムをコンパイルしようとしている 、PyopenCL 2016.1
でpython 2.7
にドライバのバージョン367.35
を使用してTesla K10.G2.8GB
での作業:OpenCLでNvidiaデバイスのテクスチャメモリに書き込み
ホスト・コード:
import pyopencl as cl
platform = cl.get_platforms()[0]
devs = platform.get_devices()
device1 = devs[1]
mf = cl.mem_flags
ctx = cl.Context([device1])
Queue1 = cl.CommandQueue(ctx)
f = open('Minimal.cl', 'r')
fstr = "".join(f.readlines())
prg = cl.Program(ctx, fstr).build()
カーネル(最小.cl)
__kernel void test(image2d_t d_output){
write_imagef(d_output,(int2)(1,1),(float4)(1.0f,1.0f,1.0f,1.0f));
}
私が手にエラーがある:
pyopencl.cffi_cl.RuntimeError: clbuildprogram failed: BUILD_PROGRAM_FAILURE -
デバイスにイメージがサポートされていて、指定されたフォーマットの テクスチャバッファへの読み書きがサポートされているかどうかを確認しました。私たちのNvidiaデバイスのいずれにも拡張子cl_khr_3d_image_writes
はサポートされていないので、 の3Dケースでは同じケースは機能しませんが、2Dケースの問題はわかりません。
問題は、このデバイスに限定されるものではないようです。私たちが使っているすべてのNvidia実装で発生します。 – Dschoni
プログラムのビルドに失敗した場合は、OpenCL API clGetProgramBuildInfoをCL_PROGRAM_BUILD_LOGで呼び出すことに相当するPyopenCLを呼び出すと、何が間違っていたかを人間が判読できるようになります。 – Dithermaster