来不及思考 发表于 2006-12-16 06:12:57

请教一个关于GPGPU与分布式运算的问题

GPGPU(General Purpose GPU,GPU通用计算)对于分布式计算的意义我想不用多说了
一片NV40就有40GigaFlops左右的峰值运算能力,相比之下即使是运行在3GHz的P4处理器,其FLOPS也只有6G,还得算上SSE

分布式运算本来就是一个全民参与的活动,考虑到GPU的普及率,个人认为今后分布式运算的主力将是GPU

现在提一个问题,各位有谁知道目前是否能有能让GPU运行通用计算的分布式处理程序呢? 哪怕是很原始简陋的测试版程序也可以,最好是最新的Nvidia 8800GTX能够运行的。实际上小弟我工作的行业是媒体,最近在酝酿一篇关于GPGPU的文章,苦于找不到测试程序,来此求救,希望各位大大能给予帮助

由于职业关系,小弟可能无法分出多余的时间和机器来跑分布式运算程序,但我可以通过媒介让更多的人了解和参与到分布式运算这件有意义的事情中来,为中国的分布式运算事业尽自己的一份力,所以还请各位知情者能帮助小弟,在下感激不尽


http://bbs.ocfantasy.com/attachments/{EB093F6B-9E82-4291-8345-8D03F4ACD9E9}_P4QH7M1ecqkN.jpg




http://bbs.ocfantasy.com/attachments/{3ED36DBA-0442-4507-A0E5-7EE3DCD3797C}_5jT13oku9V4J.jpg

fwjmath 发表于 2006-12-16 07:10:52

NV的卡不是说暂且还不支持通用计算么~~~好象只有ATI的可以~~~现在还只能算Folding@home~~~

来不及思考 发表于 2006-12-16 07:20:39

CUDA_Programming_Guide已经搞到手
G80这种架构不去做GPGPU实在是太浪费了

碧城仙 发表于 2006-12-16 07:47:03

引用 fwjmath 在 2006-12-16 07:10 时的帖子:
NV的卡不是说暂且还不支持通用计算么~~~好象只有ATI的可以~~~现在还只能算Folding@home~~~
NV 显卡在未来的一段时间里也会开始支持 Folding@home 的,11 月份就有过新闻这样说的。
G80出世,斯坦福大学分布式运算考虑支持 NVIDIA
http://www.nmzol.com/diy/2006/200611/2006-11-21/diy_20061121102141_2199.html

  ATI和NVIDIA的竞争正在从单纯的图形显示领域向通用计算领域延伸。9月底,ATI发布了自己的通用计算技术,并得到了斯坦福大学分布式运算项目Folding@home的支持,通过Radeon X1900和X1950的GPGPU架构参与运算;本月初,Folding@home开始支持CrossFire;中旬,AMD发布了给予X1900和X1950的“流处理器”,也就是ATI此前提出的FireStream通用显卡。斯坦福大学曾认为ATI GPU拥有最好的通用计算性能,不过现在NVIDIA发布了GeForce 8800,情况可能要有所变化了。

  事实上,NVIDIA也在很久以前就对GPU运算Folding@home产生了兴趣。对于NVIDIA GPU的潜力,Folding@home项目主管Vijay Pande称:“我们的GPU代码最初就是针对NVIDIA GPU开发的,但最近的ATI GPU(X1900/X1950)确实击败了NVIDIA的上一代GPU。不过,G80可能会改变这一局面,我们目前也正在对G80进行考察。我们的代码是用Brook语言编写的,所以不存在仅限ATI GPU的说法,只是需要进行调整,以便在G80等其他硬件上达到最优化。”

  NVIDIA北欧产品公关经理Adam Foat对Custom PC表示:“我们拥有众多研发团队,包括在斯坦福(大学),推广我们(在G80上)完成的硬件和软件技术。到明年,大家会看到很多学术研究方面的成果。(NVIDIA)现在最关注的运算问题是将商业程序从集群上转移到一到四GPU上。诊断设备的医学信号处理、电磁模拟、复杂生物研究、数据库分析……这都是可以从GPU运算中获益的领域,真的很广泛。我们不是简单地取代CPU在高性能程序上的地位。CPU的主要任务是运行多种程序,而通过一套大型、高速存储系统,GPU则可以处理来自多个处理器的海量数据。”

  显然,NVIDIA不但没有局限在图形性能上,对学术研究也是早有准备,而且分布式运算只是其中的一个项目而已。

  根据最新测试,Radeon X1950XTX通过GPU客户端完成Folding@home的一个工作单元只需要15个小时,可以得到330分。详情可参考这里。

  http://news.mydrivers.com/pages/images/20061120165640_20229.jpg

彬彬 发表于 2006-12-16 10:28:45

说主流,未来还是 CPU 是主流。只是可能成绩没有显卡高,但数量上一定比显卡高。

而且,并不是每一个人都愿意去买高端显卡,集成显卡的市场占有率是最高的。

现阶段利用 GPU 进行通用计算的例子非常少,一来是新方向少人研究,二来是面市的 GPU 都没有完全为这个做准备,所以做起来比较困难,等以后的 GPU 都为这个做优化,并且厂商有现成的成熟的开发环境的时候,那就会火爆起来的了。

如果哪一天微软的 DX 一统天下,然后微软能够借助于这个特点给 WINDOWS 加一个“插件”,通过操作系统让 GPU 的运算能力虚拟成一个协处理器的话。那么,理论上大部分软件都可以不做任何改变直接通过操作系统的那个“插件”的转换去得到 GPU 的运算能力。这才是最方便、最简单的方法,不然的话,要每个软件自己去想办法拿 GPU 的运算能力,对广大的编程人员来说,也许会有很大一部分人觉得困难。

彬彬 发表于 2006-12-16 10:31:00

补充一下,现在喊的 GPU 的运算能力,只是理论值,因为还没有人有现成的成熟的软件测试过。现在能运行起来的软件,得到的性能远远没有理论的高。我觉得这更大的原因是因为软件还不成熟,优化还不够,硬件设计的时候没有充分的去配合支持这种通用计算,所以有一部分性能无法挖出来。等以后GPU硬件设计做好优化了,软件设计有经验、成熟了,那得到的性能会越来越高的了。

tcogh327 发表于 2006-12-16 16:45:50

看来,以后家用电脑的升级会出现多种选择了。坚持以最优性价比获得更多的计算能力,支持分布式。

来不及思考 发表于 2006-12-16 17:18:06

哎,现阶段还是找不到能够让NV GPU实际发挥出通用计算能力的程序啊
有点失望

JUST 发表于 2006-12-16 22:06:18

直接去NV的网站找CUDA的演示吧
好像需要填一个表

有CUDA的G80某种意义上说是GPGPU普及的开始

kzli 发表于 2006-12-17 09:39:21

CUDA只能让G80以后的GPU进行运算吗?那以前的呢?从Geforce 256开始的呢到GF7
系都不能用于计算了吗?JUST,知道CUDA在liux下支持的情况吗?

彬彬 发表于 2006-12-17 10:48:13

引用 kzli 在 2006-12-17 09:39 时的帖子:
CUDA只能让G80以后的GPU进行运算吗?那以前的呢?从Geforce 256开始的呢到GF7
系都不能用于计算了吗?JUST,知道CUDA在liux下支持的情况吗?

GPU 进行通用计算不是纯软件的事。硬件也有关系的。

旧的显志核心根本没有为通用计算做任何计划设计准备,所以也不会存在任何即有的优化。反正旧核心的性能也不怎么强,与其去浪费时间在旧核心上研究获得相对少的计算能力,还不如花更少的时间去设计优化以后的新核心,然后能以更短的时间去开发并利用更强的性能。

JUST 发表于 2006-12-17 12:16:05

引用 kzli 在 2006-12-17 09:39 AM 时的帖子:
CUDA只能让G80以后的GPU进行运算吗?那以前的呢?从Geforce 256开始的呢到GF7
系都不能用于计算了吗?JUST,知道CUDA在liux下支持的情况吗?
应该是

以前的显卡只是能做通用计算,G80的通用计算是主要功能之一

从他的宣传上看CUDA的前提似乎是统一shader架构和共享缓存
前者使数据不必经过内存-显存的反复传输,后者使得shader之间可以通信


linux下支持不太清楚,但应该是早晚的事儿

过一段时间我会去做一个和GPGPU有关的毕设,应该有机会了解更多

kzli 发表于 2006-12-17 13:15:02

一些想法

如果新操作系统(无论2000,xp,vista还是linux,macosx,solaris)能通过增加插件的方式,让系统能识别出第二块处理器(GPU),系统能自动调用其运算能力,我认为现行的程序大多都不用修改,这样的方式比较好,只是系统在底层做了一些转换.这样的利用率也比较高,不用再去二次开发搞专门的GPU程序,到时候只会有一些优化过的程序出现,我觉得这样GPU真的能发挥大作用了.看来AMD的CPUGPU合并之路没有错,这是以后的发展方向,intel和ibm慢了一步,ibm如果能在其powerpc架构集成强力GPU(可惜power6没有这样做),ibm的U估计会更加强悍!

[ Last edited by kzli on 2006-12-17 at 13:16 ]

彬彬 发表于 2006-12-17 21:30:41

引用 kzli 在 2006-12-17 13:15 时的帖子:
如果新操作系统(无论2000,xp,vista还是linux,macosx,solaris)能通过增加插件的方式,让系统能识别出第二块处理器(GPU),系统能自动调用其运算能力,我认为现行的程序大多都不用修改,这样的方式比较好,只是系统在底层 ...

集不集成的关系也不怎么大。集成的话,大不了最大的优点就是离得更近,相互之间的总线更快、延迟更小。但问题是,如现在内存控制器所处位置一样,AMD 虽然内存延迟更小,但并没有完全振动 INTEL 。所以集不集成强力显示核心在 CPU 中,暂时来说也跟内存控制器一样,不是必要的,也不是 INTEL 急需的。但未来的方向应该是集成,只是就算 INTEL 晚上几年,一般也对市场份额影响不到多少。

其实最大的问题是,AMD 已经有 ATI 了,INTEL 却 99% 不可能有 NV。虽然 INTEL 现在已经在加强显示核心方面的设计,但假如 INTEL 的显示核心长期不能跟上 AMD 下的 ATI 的显示核心的话,那对后面年代的影响可能比较大。因为单靠 NV 做外援的话,绝对没有人家亲生兄弟联手的强。而且很明显 NV 已经试探性地向通用处理器走了一些小步,假如 NV 最终也决定开发 CPU 的话,那 INTEL 就成了它的最大竞争对手了,那NV就不会有很大的理由去尽力支持 INTEL 了。 我觉得 INTEL 是早就看到这些点,所以才加紧对显示核心方面的力度的。也许,过个 10 年 8 载之后,处理器世界会由 INTEL、AMD 和 NV 三分天下吧。

来不及思考 发表于 2006-12-18 02:42:34

引用 kzli 在 2006-12-17 09:39 时的帖子:
CUDA只能让G80以后的GPU进行运算吗?那以前的呢?从Geforce 256开始的呢到GF7
系都不能用于计算了吗?JUST,知道CUDA在liux下支持的情况吗?

GPGPU不是单纯的拼FLOPS的
相对于CPU,GPU本身在灵活性和可编程能力方面还有一定的差距,现在的GPU执行的时候限制非常多,比如只能通过纹理顶点来读取数据,只能通过渲染到纹理来写入数据……这些限制在执行很多运算时候都是很致命的。而精度方面也是一个问题,现在的GPU提供的大多是IEEE单精度浮点标准,对于许多计算而言,IEEE双精度浮点是必须的。
总之,要改进的地方还很多,最近基于DX10的G80让我看到了一些新的希望,开始支持整数指令集,支持流输出,TMU在做filtering的时候,可以支持到RGBA32,等等等等

明年第一季度,基于G80架构的中端产品就该问世了,到时候会有更多的选择...CUDA其实是一个蛮有野心的计划
页: [1] 2
查看完整版本: 请教一个关于GPGPU与分布式运算的问题

论坛官方淘宝店开业啦~
欢迎大家多多支持基金会~