0

OpenCL カーネルで倍精度拡張機能を使用しようとしましたが、ビルドできません。(Cloo.BuildProgramFailureComputeException)

これが私のコードです:

string kernel = @"
#pragma OPENCL EXTENSION cl_khr_fp64 : enable
kernel void ImgWarp(
    global char* img1,
    global char* img2)
    { }"

ComputeContextPropertyList Properties = new ComputeContextPropertyList(ComputePlatform.Platforms[0]);
ComputeContext context = new ComputeContext(ComputeDeviceTypes.All, Properties, null, IntPtr.Zero);
ComputeProgram program = new ComputeProgram(context, kernel);
program.Build(null, null, null, IntPtr.Zero);

ハードウェアが倍精度をサポートしていることを確認しました。ただし、cl_amd_printf 拡張機能を使用すると機能します。何か案は?

4

1 に答える 1

0

この種の問題をデバッグするために最初にすべきことは、CL_PROGRAM_BUILD_LOG で clGetProgramBuildInfo を使用してビルド ログを取得することです。問題に関する情報が表示されるはずです。cl_amd_fp64 でも試しましたか?

于 2011-07-18T16:01:10.220 に答える