忍者ブログ

Memeplexes

プログラミング、3DCGとその他いろいろについて

C#でOpenCL入門 (Cloo版) デバイス

デバイス

こちらも合わせてお読みください。

今回のテーマはデバイスです。
OpenCLではデバイスとはGPUかCPUのことです。
OpenCLで並列計算しようと思ったら、デバイスを列挙しなくてはいけません。
(プラットフォームのところでも同じようなことを言ったような気もしますが、プラットフォームはソフトウェアで、デバイスはそれで動くハードウェアということだと思います。)


プラットフォームからデバイスを取得

前回出てきたプラットフォームはハードウェアのメーカーを表すようなものでした。
正確にはそのメーカーの作ったソフトウェアですが。
今回扱うデバイスは、そのメーカーの使ったハードウェアのことです。
プラットフォームから、デバイスを取得できます。

using Cloo;

class Program
{
    static void Main()
    {
        foreach (ComputePlatform platform in ComputePlatform.Platforms)
        {
            foreach (ComputeDevice device in platform.Devices)
            {
                System.Console.WriteLine(device.Name);
                System.Console.WriteLine(device.Type);
            }
        }
    }
}

実行結果は次のようになりました:

Redwood
Gpu
Intel(R) Core(TM) i7 CPU       Q 740  @ 1.73GHz
Cpu

ここで使ったDevice.Typeは次のようなプロパティです:

public ComputeDeviceTypes Type { get; }

DeviceTypeは次の5つがあります:

ComputeDeviceType 解説
Cpu CPUです。
Gpu GPUです。
Accelerator IBM CELLなどです。
Default デフォルトのデバイスです。
All 使用可能な全てのOpenCLデバイスです。

拍手[0回]

PR