CLOO 是一个对 OpenCL 的 .Net 封装,可以让 .Net/Mono 程序充分使用 OpenCL 的优势,易用、开源。
今天用 OpenCL 中的 “Hello World” 程序 - 矩阵乘法,来简单介绍一下 OpenCL。
OpenCL 是一个开放的工业标准,既然是开放的,那么,所有厂商就可以提供自己的实现,例如英特尔,英伟达等等。也正因为如此,也导致在同一台机器上可能存在多个支持不同版本的硬件。例如,英伟达的GPU到现在也才支持 OpenCL 1.2 版本,但是OpenCL都已经出到2.x版本了。
我们可以查看当前设备中,有哪些厂商提供了 OpenCL 的支持,以及运算平台是啥。例如,在 Surface Book (with Nvidia GPU) 上,我们调用以下代码看看:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| var platforms = ComputePlatform.Platforms;
foreach(var platform in platforms) { Console.WriteLine($"{platform.Name},{platform.Version}");
var devices = platform.QueryDevices(); foreach(var device in devices) { Console.WriteLine($" Device:{device.Name}"); } }
|