Cloo 中的 OpenCL 扩展

Posted

技术标签:

【中文标题】Cloo 中的 OpenCL 扩展【英文标题】:OpenCL extensions in Cloo 【发布时间】:2011-07-18 10:31:16 【问题描述】:

我尝试在我的 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 扩展是可行的。有什么想法吗?

【问题讨论】:

【参考方案1】:

调试此类问题的第一件事是使用带有 CL_PROGRAM_BUILD_LOG 的 clGetProgramBuildInfo 获取构建日志。在那里,您应该看到有关该问题的一些信息。你也试过 cl_amd_fp64 吗?

【讨论】:

以上是关于Cloo 中的 OpenCL 扩展的主要内容,如果未能解决你的问题,请参考以下文章

Apple OS X 上的 OpenCL 半精度扩展支持

OpenCL:处理双打错误

使用 Visual Studio 2010 在 Nvidia GEFORCE 上的 OpenCL 代码

GPU 中的并行性 - CUDA / OpenCL

OpenCL 中的私有内存是不是有最大限制?

OpenCl 中的吞吐量计算