编译内核时OpenCL Cloo Null引用异常

时间:2014-06-03 00:48:23

标签: c# .net opencl cloo

我正在尝试使用Cloo编译程序来运行一些opencl代码。

static void Main(string[] arg)
{
    CLCalc.InitCL();
    string src = File.ReadAllText("kernels.cl");   

    CLCalc.Program.Compile(src);
}

该程序以前工作正常,但现在我得到一个空引用异常。 error 起初我以为我的opencl代码中有一个错误,但我用一个非常简单的内核替换了opencl,它仍然无法编译。

即:

static void Main(string[] arg)
{
    CLCalc.InitCL();
    //string src = File.ReadAllText("kernels.cl");   
    string src = "__kernel void hello(__global char * out){}";

    CLCalc.Program.Compile(src);
}

NoDevice

请注意,没有设备存在。为什么会这样?我有一个GPU ......

自从在我的电脑上安装CUDA tooklkit以来,这是一个问题。这有可能成为原因吗?

修改

我创建了一个非常简单的项目,只有几行代码可以解决我的错误。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using OpenCL;
using OpenCL.Net;
using OpenCLTemplate;

namespace ClooTest
{
    class Program
    {
        static void Main(string[] args)
        {
            CLCalc.InitCL();

            string src = "__kernel void hello(__global char * out){}";

            CLCalc.Program.Compile(src);
        }
    }
}

修改

我从USB恢复了我的程序的旧工作副本。它在我的家用电脑上运行良好。但是当我在我的工作PC上运行时,我得到了同样的错误。

cmd

修改

如果我在编译行之前放置一个断点,我可以看到一个异常 NotFound

为什么不能突然找到我的设备?

修改

当我查看我的OpenCL设备时,唯一列为默认设备的是我的CPU ......

Devices

为什么!?

0 个答案:

没有答案