GPU的计算能力在电脑游戏和计算机视觉领域已经得到了充分的证明。本文的目的不在于介绍GPU的发展史和其在上述领域的应用,而是侧重于如何在通用计算领域发挥GPU强大的计算能力,即GPGPU(General-Purpose-GPU)技术 。笔者是一名程序员,所以本文面向的也是广大对GPU计算感兴趣程序员,而不是GPU的设计者。普遍的观点认为,对程序员来说进入GPU计算的最大门槛在于对GPU体系结构的理解,这种理解不是要懂得硬件的设计和工作原理,而是对一些体系结构概念和性能模型的理解。也许有人会问,为什么很多程序员不需要了解CPU体系结构同样能写出高效的C/C++代码? 窃以为原因分两个方面:
1,CPU体系结构的发展已经经过几十年,系统软件(OS, Compiler...)的发展已非常成熟,基本的概念也已经写入教科书。
2,对CPU编程多数情况下还是以串行思想为主,并不是所有程序员都熟悉Multi-threading,Map-Reduce等并行编程方法。

而GPU体系结构在短短的几年进行着突飞猛进的发展,两大阵营ATI和NV之间也有很多不同,所以即使是游戏领域的程序员也不见得能准确的描述他所写的代码是如何在GPU上面运行的(也许很多时候他们也不需要知道,一方面体系结构的不同已经被成熟的API包装得很好了,另外一个“飞快”的游戏并不一定是一个好的游戏)。然而,在通用计算领域使用GPU,一定是为了更高的运行效率,而且通用计算领域的算法又是多样化的很难用一套API进行封装(后面会提到,我们确实能总结出一些常用的"计算元"-primitive来让问题变的简单一些)。

基于以上的原因,笔者认为为了能写出能高效运行的GPU通用计算程序,程序员需要对GPU体系结构有一定的理解。然而,GPU体系结构是一个快速变化而且非常复杂的领域,要深入理解并达到“知其所以然”的程度需要很多年的积累和实践。这显然这并不应该是程序员所能承受的。为了让这种学习对于一般程序员来说也不至于成为一种负担或痛苦的无底深渊,所以应该区别出哪些才是对自己写程序是有真正有参考价值。本文第一部分的目的就在于能尽量整理出这些有价值的知识,并分析它们会怎么影响程序员的代码。

转载于:https://www.cnblogs.com/shawn-zhou/archive/2010/09/04/1818116.html

面向程序员的GPGPU技术系列(1) 为什么要理解GPU体系结构?相关推荐

  1. 面向程序员的数据库访问性能优化法则

    面向程序员的数据库访问性能优化法则 特别说明: 1.   本文只是面对数据库应用开发的程序员,不适合专业 DBA , DBA 在数据库性能优化方面需要了解更多的知识: 2.   本文许多示例及概念是基 ...

  2. 程序员如何在技术上提升自己

    程序员如何在技术上提升自己 发表于2014-10-29 09:48| 26529次阅读| 来源CSDN| 111 条评论| 作者钱曙光 社区之星访谈李运华程序员面向对象团队管理 allowtransp ...

  3. Feep! search:一款面向程序员的搜索引擎,收录信息超 2900 万页!

    公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! 想让检索代码不再「大海捞针」?就用「Feep! search」. 一款专门面向程序员的搜索引擎,2021年9月才开 ...

  4. 【转】面向程序员的数据库访问性能优化法则

    特别说明: 1.  本文只是面对数据库应用开发的程序员,不适合专业DBA,DBA在数据库性能优化方面需要了解更多的知识: 2.  本文许多示例及概念是基于Oracle数据库描述,对于其它关系型数据库也 ...

  5. 面向程序员的数据挖掘指南-----第一章:简介

    内容: 寻找事物 本书结构 阅读完本书后你可以做些什么? 为什么数据挖掘很重要?哪些内容可以为我所用? 标题里的"Numerati的古老艺术"是什么意思? 序 如果你每天都能重复做 ...

  6. BookChat学习软件—(面向程序员的 IT 互联网开源编程书籍免费阅读)

    ▌BookChat https://www.bookchat.net/ 优点 开源:基于 Apache 2.0 开源协议进行开源,对商业友好 秀气:简洁.美观,没那么多花里胡哨 丰富:注册.登录.搜索 ...

  7. 程序员之死(系列)——续

    程序员之死(系列)--续 1. 看到CSDN 在讨论程序员是不是已经死了.对于这个问题本身,我没有啥想法,因为本质上只不过是把一个一直在讨论的问题用尼采体重新表达了一下.其实这个话题既不是职业规划问题 ...

  8. “源于梦想、止于现实”成为图书作者的困难——《程序员羊皮卷》揭秘系列 (2)

    <程序员羊皮卷>当当购买地址:http://product.dangdang.com/product.aspx?product_id=20691986 互动购买地址:http://www. ...

  9. 程序员如何讲清楚技术方案

    最近在评审技术方案,和代码review的时候,遇到刚入行的同学们,很多都讲不清楚技术方案. 具体表现是: – 上来不说需求,直接说算法实现.台下一头雾水,根本不知道设计方案是否合理. – 描述完需求后 ...

最新文章

  1. php改7z,PHP的7z扩展名? - php
  2. axios ajax和flask传输json数据
  3. mysql执行计划extra为null_MySQL执行计划extra解析
  4. 让博客园的编辑器自动上传外链图片
  5. android http pos 请求和gson解析处理head头信息
  6. PHP—使用MYSQL来登陆用户
  7. [唐诗]诗(选二首)-王梵志
  8. python中利用pygame模块输出文字
  9. 2B码农想转做产品,这的规划是否靠谱?
  10. 青云QingCloud打造云端ICT服务 实现战略全面升级
  11. Git (10)-- 打标签(git tag)
  12. Notepad++的SQL格式化插件
  13. canvas实现圆饼图,柱状图,折线图(满满的干货)
  14. 支付宝第三方应用,用户登录授权获取信息
  15. 正则表达式re中的group和groups
  16. 妙哉!那个用文言文编程的小哥,竟从28万行唐诗中找出了对称矩阵
  17. B站崩了、Facebook崩了,我们到底该怎么保证高可用
  18. 三星 OMNIA7/I8700 刷机 ROM集合
  19. 因特尔Edison第2站--mraa下gpio
  20. 【软件定义汽车】【场景篇】AR-HUD

热门文章

  1. 思维方式是看待事物的角度、方式和方法,它对人的言行起到决定性作用
  2. 七类常见的兼职骗局,你需要知道
  3. 知道草根如何逆袭吗?
  4. Its configuration is R5 3600, ASUS B450M motherboard
  5. 排序算法(一)--插入排序法折半插入排序法
  6. 复制vmware的ubuntu虚拟机启动进入紧急模式问题
  7. sql库缓存命中率_SQL Server内存性能指标–第4部分–缓冲区高速缓存命中率和页面寿命期望
  8. 如何将多个图像上传到SQL Server
  9. ssma5.3_使用SSMA v7.1 for Oracle迁移到SQL Server
  10. json 转对象函数_JSON_QUERY()函数从JSON数据提取对象