关于Opencl的理解

  • OpenCL是一个API,就是应用程序的编程接口,OpenCL可以调用API最底层的数据,通过程序开发调用各种各样的函数,实现各种各样的功能。

  • 对于API来说一般它对硬件设备有比较完整的访问权,以访问硬件的设备,可以对内存进行管理,这是由开发人员通过编程来做的这些事情。最后OpenCL通过编译、通过驱动程序可以生成PTX代码在GPU上进行执行。

  • kernel是什么呢?可以当成是GPU设备上执行的程序函数,而且它是唯一的可被host调用的函数。

OpenCL代码执行大致过程为:

  • host选择一些devices组成context;
  • 许许多多的kernel一起组成program,然后host从program中选择一些kernel放入command queue。
  • 每个device对应一个command queue。每个device处理执行其command queue中的kernel。
  • 由host接收设备处理后的events,调用事件处理routines。一旦设备处理结束,host处理得到输出的最终结果。

你可能感兴趣的:(关于Opencl的理解)