注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

gmd20的个人空间

// 编程和生活

 
 
 

日志

 
 

GPU 知识更新  

2011-06-20 14:21:47|  分类: 程序设计 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
以前读书时,对游戏编程比较感兴趣。在学校图书馆找过很多很多书看,自己也看过几本。(这学校就图书馆不错呵呵,每隔一段时间就有新书入库,特别是计算机 的。)那时书主要还是说DirectX9.0和 OpenGL的吧。好像不错的书都会一下“着色语言”上面的,就是使用GPU来加速某些运算什么的。如果我没记错的话,那种语言都是格式古怪的,有点类似 上面嵌入汇编之类的,可以让你在程序中插入一些运算加速的代码,编译器会帮你转换成满足GPU要求的代码。 反正又分为准备数据什么阶段上面的,我一直也没学会,应该很难使用的。不过那时很多编程书都喜欢用这个来搞几个酷酷的例子放在上面了。

离 开学校也好几年了,我用的破电脑也还是以前的那个,操作系统也没怎么变。做的东西也和图形这些没什么关系。今天看了下新闻,才知道GPU这块发生了很大的 变化了啊。前几天还有同事说GPU这东西怎么通用的使用办法没有。要不是今天看到这个新闻,就还以为还像以前那样使用怪异的着色语言了。以前的“天河一 号”超级计算机还说用了GPU来加速的呢,原来这GPU真的早就好用好多了阿! GPU按照名字意思,应该就是专门为了图形运算计算而作的了。像3D图形需要的那些运行,比如向量运算、坐标变换,颜色4元组变化等计算,GPU的加速就 是对这些数据的运算变成成组成组的运算作加速吧(很多时这些数据都是成组的,比如一个3D动画包含很多3角形,每个坐标又分为x、y、z、缩放因子。每个 像素点包含 红绿蓝透明等分量等。),DirectX3D 和OpenGL应该就是封装了一下GPU的接口以便使用。那些着色语言也是一些通用的尝试吧。

不 做最近这几年Nvidia的工程师更新了GPU架构,提高了性能,说是从这种成组的运算中发现象计算需求的规律,总结成更通用的浮点运算单元,然后搞很多 个运算单元,进行并行运算。说是新的机构大大提高了GPU的性能。(参见 GPU挑战CPU地位!详解CUDA+OpenCL威力 http://www.pcpop.com/doc/0/353/353743_2.shtml)很明显的一点,这比较通用的“单精度浮点运算” “双精度浮点运算”是比较通用的了,不单单是图形运算才可以使用了。所以Nvidia这些显卡公司开始开发这种供普通程序使用的库了。资源放在那里不使用 浪费不是吗?

Nvidia 自己搞了CUDA库,
另外有很多产商都支持的
OpenCL - The open standard for parallel programming of heterogeneous systems
http://www.khronos.org/opencl/
连微软也搞了个DirectCompute

这 些都可以使用C语言来编程来,使用C的语法明显更通用了。这些库应该也封装了很多通用的数学函数之类的了。C语言写的程序,最后通过自己的编译器编译成为 GPU支持的汇编指令吧,就像我们编译得到x86汇编指令一样。这些库可以被c# java python等语言使用了。如果这GPU的架构变得像这个x86一样透明,通用性更好,到那时也许我们每个人都去要学习了GPU 这么课程了,呵呵!现在好像还是要遵循一定的规范,比如自己从cpu copy数据到gpu,然后调用特定的运算功能,然后把数据从gpu 复制回来等。的等我有钱买一个高级显卡了,我再去玩一下呵呵! 不过现在好像视频编码那些都可以通过GPU运算来加速了
  评论这张
 
阅读(506)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017