公告:服务器迁移已顺利完成! 网址全面启用 https

服务器2号 服务器3号 服务器5号

申请VIP无广告,支付宝,微信,USDT!
在线客服请尝试以下不同链接如果进不了的话在线客服(1) (2) (3) (4) (5) (6)
(7) (8) (9) 实时开通

查看完整版本: 跟大家说说OpenCL。

visc 2009-4-3 22:24

跟大家说说OpenCL。

08年的图形市场,AMD凭借改良架构的HD4000系列开始收复失地,逐步蚕食NVIDIA游戏市场份额,但有一个领域AMD始终难以染指,那就是日益庞大的GPU通用计算市场。虽然AMD最先提出GPGPU的概念、虽然AMD显卡拥有更恐怖的浮点运算能力(理论上)、虽然AMD也有自己的FireStream流处理加速卡,但AMD没有自己的标准,根本无法同NVIDIA的CUDA统一计算架构及Telsa计算处理器相提并论。
  在消费级市场,基于CUDA技术的PhysX物理加速和Badaboom视频编码所带来的超强性能令人惊讶不已,而在专业级的科学、气象、金融甚至是军事领域,海量并行计算对性能的渴求永无止境,CUDA所带来的超强运算能力正好符合科研工作者的需求,这也就是CUDA在近两年来发展如此迅猛的根本原因!
    面对前景如此广阔的市场,IT巨头们个个摩拳擦掌、欲大展身手,Intel、AMD、NVIDIA、IBM都纷纷致力于研发自己的通用并行计算平台,乘市场未成熟之际抢占份额,一时间场面比较混乱,没有统一的标准。
天下大势,分久必合。这次关于开放式通用计算平台的统一,发起于以“封闭”著称的苹果公司。这个新的标准被称为OpenCL,英文全称是Open Computing Language。他们将这个标准提交到了The Khronos Group,这是一个业界的标准化组织,目前管理着大名鼎鼎的OpenGL(图形)和OpenAL(音频)。
[b][size=3]OpenCL为基石 GPU通用计算行业标准诞生[/size][/b]
    负责推广OpenGL等开放标准的行业组织Khronos Group日前正式宣布,将组建一个新的“计算工作组”,负责起草针对GPU、CPU并行计算进行编程的全免费开放行业标准。苹果提出的OpenCL将成为该标准的奠基文档。
该工作组的首批成员包括:3Dlabs、AMD、苹果、ARM、Codeplay、爱立信、飞思卡尔、Graphic Remedy、IBM、Imagination Technologies、Intel、诺基亚、NVIDIA、摩托罗拉、QNX、高通、三星、Seaweed、德州仪器和瑞典Ume 大学。工作组的目标非常明确,将运算核心越来越多,性能越来越强的GPU从仅限于图形运算领域的桎梏中解放出来,充分调动其运算能力。未来,该标准能够提供给不同厂商的硬件提供一个通用的应用程序接口,使计算机中的GPU和CPU共同发挥运算能力完成各类计算任务,包括同为该组织标准的OpenGL、OpenGL ES API加速,以及诸如物理效果运算,图像处理和图像识别等等。
    在WWDC苹果开发者大会上,苹果宣布预计明年发布的Mac OS X 10.6 Snow Leopard操作系统将引入名为OpenCL的新特性,通过基于C语言的编程接口实现GPU通用计算支持。Khronos工作组表示,他们欢迎成员企业和全球其他任何企业为开放通用运算标准提供内容。但毫无疑问,苹果提出的OpenCL已经成了该标准的奠基石。甚至现在看来,苹果当初的命名想必也已经考虑了成为行业标准的前景。未来该标准直接定名为OpenCL,从目前来看几乎是一件顺理成章的事情。
当前,AMD和NVIDIA甚至Intel都有各自独立的GPU通用计算计划。而对消费者来说,一个开放的行业标准无疑要比各自为战的企业标准亲切的多。由于AMD、NVIDIA、Intel同为工作组成员,这一标准的提出为我们描绘了一个美好的未来:无需区分哪家厂商的产品,不分GPU、CPU,系统可以根据当时的应用需要,调动各个处理器的运算能力,以协同合作的方式最快速度完成工作。另外,Khronos Group还表示,该标准不仅面向桌面PC,还将针对嵌入式系统。从工作组名录中出现的诺基亚、爱立信、摩托罗拉、三星、高通等名字也能看出端倪,移动设备的通用计算肯定也在工作组的计划当中。
    OpenCL将统一管理一台电脑上的所有计算资源,比如你的多核CPU,以及多个GPU。OpenCL将这些资源统一看待,算作计算单元,并配置各种级别的内存:private、local和global。每个计算单元可以容纳多个工作单元,类似CUDA里的thread概念。
[b][size=3]CUDA和OpenCL异同:没有利益冲突互补[/size][/b]
    CUDA和OpenCL原理是一样的,都是基于C语言编程,但CUDA只能用于NVIDIA GPU(半封闭式),而OpenCL是完全开放的,可以支持任何GPU(DX9以上级别)。举个最简单的例子,基于CUDA技术的PhysX与Badaboom只能用于NVIDIA GeForce 8以上级别的显卡,而基于OpenCL/GL技术的PhotoShop CS4就能支持目前所有主流显卡。
简单说明下OpenCL和CUDA的不同:
[list][*]OpenCL提供统一的标准,让不同厂家的设备来支持,使得我们可以统一看待计算资源。这个计算资源不但包括GPU,也包括CPU。[*]OpenCL更关注于多个计算资源的管理,不但在计算单元内部可以实现并行,而且对于一台宿主机上的所有计算设备的并行化进行管理。[/list]    虽然CUDA和OpenCL是两种标准两种概念,但其实两者并不是对立的存在,不但不会产生利益冲突,反倒是一种互补互利的关系。因为NVIDIA不但是OpenCL标准的制定者之一,而且是苹果的亲密合作伙伴。比如苹果新一代MacBook将会采用NVIDIA的GeForce 9400M GPU,这款整合显卡拥有16个流处理器,既能运行基于CUDA的应用程序以及对其进行编程,将来也能完美支持基于OpenCL API的并行计算程序。
此前AMD攻击NVIDIA,称CUDA为封闭的标准,而AMD则大力支持完全开放的OpenCL。但目前来看NVIDIA两手抓两手都要硬的策略还是更加靠普,在OpenCL成型之前的真空期,CUDA已经大展宏图取得了骄人的战绩,待到OpenCL完善后NVIDIA也会无条件提供支持,将兼容性和效能发挥到最大。而对于AMD来说,GPU通用计算则要完全依赖OpenCL,因此目前AMD并行计算尚未正式进入实际应用阶段,只有等待OpenCL API成熟之后,才能在其基础上进行二次开发,无论运算效率还是软件支持度都将会大打折扣!



[size=3][color=blue]我的评论:
如果OpenCL能够真正的推行,我想对于我们普通用户来说是一件非常好的事。你装机时选配的高端显卡,现在除了在进行大型3D程序应用时能够发挥作用,那么在平时,这显卡就像是一块额定功率100W以上的电阻一样。现在的高端显卡计算能力动辄数10FLOPS,然而平时不能发挥太大的作用。而OpenCL的推行,就可以解放显卡、手机等有计算能力的设备的计算力,可以大幅度提高工作效率。然而我认为,OpenCL的推行也许并不会一帆风顺,需要一个过程。首先遇到的阻力来自于AMD和NVIDIA两家,各自拥有STREAM和CUDA技术,而且这两项技术都已经有了一定的实际应用(比如说视频编码),如果让两家标准统一,相信会比较困难(代码要重写,利益也有冲突);而且组织内部各家老大能不能保持团结还不一定,现在全球金融不景气,大家都以利益为重。尽管不会一帆风顺,但是我们仍然等待普及的那一天早日到来。[/color][/size]

bjdm 2009-4-4 09:35

最大的阻力来自Intel。OpenCL的构想很诱人,但其作用说到底相当于一个协处理器,如果Intel有能力在CPU内集成多个高效的运算单元,则显卡的运算能力可以忽略。毕竟显卡芯片的集成化已经是趋势,独立显卡市场日益萎缩。
如果仅仅需要的是计算性能,不一定要显卡来完成,完全可以设计成专用插卡。或者只要系统能提供足够带宽,做成外接设备都可以。这时Intel就控制不了,然而这样的市场需求可能更少。
还有一个变数来自微软,能在Win上以DirectX封杀了OpenGL,如果M$把DirectX扩展,支持统一计算,OpenCL在Win上前景如何?

539207 2009-4-4 22:21

怪不得以前玩linux的时候 用n卡的朋友开3D效果很方便 而我的a卡折腾半天 才能启动3D弄好 学习了
我觉得ls说的也很有道理 所以现在amd收购ati后就打算将显卡gpu和cpu整合起来 而intel和NVIDIA在搞合作
不过操作系统貌似对opengl的制约少很多吧 如果真的所有的厂商都支持这个标准 那么操作系统也肯定会考虑这个因素的
再说根据Google的说法 操作系统的功能会弱化

kkbct 2009-4-4 22:26

这个和OPENGL有啥区别???

现在还是用DX是主流。。
页: [1]
查看完整版本: 跟大家说说OpenCL。