GPU方面的随笔记录

GPU :主流众核协处理器

GPU+CPU的异构并行体系

OpenCL: CPU+GPU异构计算架构

CUDA:NVIDIA 2007年推出的GPU通用计算产品

cuda优缺点:

cuda对于已经在cuda上的数据执行起来很快,但数据从cpu搬到cuda上却很耗时,而且依赖硬件。


并发性 concurrency :相对于软件系统

硬件支持的并发性叫做并行性


并行程序设计模型:

任务并行(task parallelism)

数据并行(data parallelism)

在数据并行程序设计模型中,程序员从可以并发更新的数据元素几何角度来考虑问题。并行性表述为将相同的指令流(一个任务)并发地应用到各个数据元素,并行性体现在数据中。

在任务并行程序设计模型中,程序员直接定义和处理并发任务。问题分解为可以并发运行的任务,然后再映射到一个并行计算机的处理单元(processing element,PE)来执行。


OpenCL同时支持两种模型


除了编程模型外,并行程序设计过程的下一步是将程序映射到真正的硬件。这里异构计算机就会带来特有的问题。系统中的计算单元可能有不同的指令集和不同的内存体系结构,而且可能以不同的速度运行。一个有效可行的程序必须了解这些差别,并能适当的将并行软件映射到最合适的OpenCL设备。


通用GPU(General-Purpose GPU, GPGPU)   编程打破了这个模型。图形以外的算法会修改为合适于GPU处理。cpu完成计算并管理I/O,不过所有“实质性的”计算都“分摊”给GPU。基本上异构平台会被忽略,而把重点放在系统中的一个组件上:GPU。

OpenCL不建议采用这种方法。OpenCL会均衡的使用“所有OpenCL设备”。即负载均衡。


硬件异构性很复杂。所以程序员依赖于隐藏硬件复杂性的高层抽象。


并发是有状态的,某一线程同时执行一个任务,完了才能进行到下一个,而并行是无状态的。

reference:浅谈并发与并行



参考文章:GPU与CPU


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值