多线程并发总结七 GPU

我们的CPU叫做中央处理器可以用来做各种的计算,但是我们现在的计算机如果要处理图形输出的话,特别是三维的图像输出,一个比较强的GPU是必不可少的。

比如一帧的图像的输出计算,其实针对上面的每一个像素是有大量的类似的计算在并发进行着的。而我们的GPU就是设计来专门做这样的计算的。

一个GPU里面有很多的计算单元,一个这样的计算单元的运算能力肯定比不上CPU中的一个内核,但是GPU中的计算单元的数量比CPU的内核要多得多。

所以有一些操作GPU有其天生的优势。下面是GPU支持的一些操作。

Map,对于一个Data Stream里面的所有的数据执行一个函数做数据转换。

Reduce,对于一个Data Stream里面的所有数据进行一个函数计算得出一个结果。

Stream filtering,数据过滤

Scan 是一个累计操作 输入的数据流如果是 [a0, a1, a2, a3, ...],那么Scan的输出就是[a0, a0 + a1, a0 + a1 + a2, a0 + a1 + a2 + a3, ...] 这里的加号不是指四则运算中的加法,而是任意的一个操作,只要这个操作满足结合律以及带有幺元。

Scatter 用于把数据从显存中做位置搬动用的。输入一个index函数作为映射函数就可以把内存位置做一个映射。

Gather 是Scatter操作的反向操作。

Sort 排序

Search 对于已经排序数据进行搜索

可见,GPU支持大量的批量数据操作十分适合用来做很多的大数据操作。

OpenGL用来驱动GPU进行图形渲染,我们可以使用OpenCL来调用GPU进行计算运算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值