我尝试在我的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扩展名可以正常工作。有什么想法吗?
答案 0 :(得分:0)
调试此类问题应该做的第一件事是使用CL_PROGRAM_BUILD_LOG使用clGetProgramBuildInfo获取构建日志。你应该看到有关这个问题的一些信息。您是否尝试过cl_amd_fp64?