0

Cloo を使用していくつかの opencl コードを実行するプログラムをコンパイルしようとしています。

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

    CLCalc.Program.Compile(src);
}

プログラムは以前は正常に動作していましたが、null 参照例外が発生します。 エラー 最初は自分の 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);
}

デバイスなし

デバイスが存在しないことに注意してください。これはなぜでしょうか?私はGPUを持っています...

これは、私の PCにCUDA takelkkitをインストールして以来の問題でした。これが原因である可能性さえありますか?

編集

数行のコードだけで非常に単純なプロジェクトを作成し、バグを明らかにしました。

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で問題なく動きました。しかし、仕事用の PC で実行すると同じバグが発生します。

コマンド

編集

コンパイル行の前にブレークポイントを置くと、例外が表示されます 見つかりません

突然デバイスが見つからないのはなぜですか?

編集

自分の OpenCL デバイスを見ると、デフォルト デバイスとしてリストされているのは自分の CPU だけです ...

デバイス

どうして!?

4

0 に答える 0