首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenCL OutOfResources

OpenCL OutOfResources
EN

Stack Overflow用户
提问于 2017-05-12 02:03:11
回答 1查看 390关注 0票数 1

我有一个OpenCL内核,它在运行时抛出一个OutOfResources异常。

注意:我正在为C#使用Cloo

我创建了一个问题的最小工作示例,内核现在看起来如下所示:

代码语言:javascript
复制
__kernel void MinBug
(
    __global float  * img, 
    __global float  * background,
    __global int    * tau   
)
{
    int neighbourhoodSize = tau[0];

    const int x = get_global_id(0); 
    const int y = get_global_id(1);

    for (int i = -neighbourhoodSize; i <= neighbourhoodSize; i++)
    {
        for (int j = -neighbourhoodSize; j <= neighbourhoodSize; j++)
        {
            //...
        }
    }
}

对于我最初的程序,当τ很小(即: 2,10,15)时,这个程序运行得很好,但是当τ在27左右时,有时会抛出一个异常。我创建的最小工作示例在τ接近300之前没有这个问题。

在我的C#程序中遇到的具体错误是

Cloo.OutOfResourcesComputeException:“检测到的OpenCL错误代码:OutOfResources。”

这通常发生在调用Kernel.Execute()方法之后的下一行。

我错过了什么概念?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-14 06:53:13

感谢Huseyin对安装正确运行时的建议。

我还需要在代码中选择正确的平台。

在我的电脑上,我目前有三个平台。其中两个似乎与CPU (英特尔i7)有关。其中一个似乎是GPU (NVidia gtx 660 ti)。

我试着在我的GPU上显式地运行,结果它的能量用完了。正如您从上面的错误消息中看到的。

当我指定CPU时

代码语言:javascript
复制
CLCalc.InitCL(Cloo.ComputeDeviceTypes.Cpu, 1);

它跑得更好了。谁会想到,我的CPU似乎比GPU的咕噜声更大。也许这是一个简单化的衡量标准。同样值得注意的是,我的CPU支持比GPU更晚的OpenCL版本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43928179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档