OpenCL基本概念

OpenCL程序同CUDA程序一样,也是分为两部分,一部分是在主机(以CPU为核心)上运行,一部分是在设备(以GPU为核心)上运行。在设备上运行的程序被称为核函数。但是对于核函数的编写,CUDA一般直接写在程序内,OpenCL是写在一个独立的文件中,并且文件后缀是.cl,由主机代码读入后执行,这一点OpenCL跟OpenGL中的渲染程序很像。

汇总一些OpenCL的基本概念,包括设备、核函数、主机、平台等,把这些概念跟CUDA类比,理解起来就很容易了。


设备(Device): GPU及其显存组成的计算系统。


核函数(Kernel): 是在设备程序上执行运算的入口函数,在主机上调用。


SIMT(Single Instruction Multi Thread): 单指令多线程,GPU并行运算的主要方式,很多个多线程同时执行相同的运算指令,当然可能每个线程的数据有所不同,但执行的操作一致。


工作项(Work-item): 跟CUDA中的线程(Threads)是同一个概念,N多个工作项(线程)执行同样的核函数,每个Work-item都有一个唯一固定的ID号,一般通过这个ID号来区分需要处理的数据。


工作组(Work-group):跟CUDA中的线程块(Block)是同一个概念,N多个工作项组成一个工作组,Work-group内的这些Work-item之间可以通信和协作。


ND-Range: 跟CUDA中的网格是同一个概念,定义了Work-group的组织形式。


主机(Host): CPU及其内存组成的计算系统。


品台(Platform): 主机和OpenCL管理框架下的若干个设备构成了一个品台,所有GPU操作都限定这这个选择的Platform上运行。OpenCL编程的第一步就是选择并初始化一个平台。


上下文(Context): 定义了整个OpenCL的运行环境,包括Kernel、Device、内存管理和指令队列等


指令队列(Command-Queue): 一些需要在设备上执行的OpenCL指令的集合。

 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值