以下引用hisuiIBMPower4在2004-9-16 6:13:19的发言:
Power5不是Power G5(g5是power4的简化版) 是IBM的超强服务器用的CPU,32路power5(16个cpu核心)比128路的安腾2快,2W USD 2p(8P)的入门机使其在性价比上能于X86抗横,你大概没见过UNIX的恐怖吧?1999年产的Alpha EV5/6 500Mhz的CPU跑linpack比3.04Ghz的P4快(而且还可上winNTfor Alpha),旧的SGI 400MHz的MIPS跑folding@home快比K7 2400+ AIX用不着上补定,安全用动态分区(类VMware)做个虚拟的win就可以了,以POWER5的计算力RAM够的话开10个WIN打CS也没问题,还有UNIX本地即可运行的Kanon和air |
MIPS我这里办公室有几台是2002年买的(听说爆贵),我不时有在用。你说速度快我不否认,但是你要说400MHz的MIPS比2.4GHz的x86快,我就不得不要求你拿出证据来了。
我不这样认为的原因很简单,我这里有的时候有大量计算的科研程序,有的需要48小时或者更长的时间计算。我怎么只看见它们运行在我们自己组装的x86阵列系统上,缪看见用MIPS机器来运行它们..... -_- 难道少等几个小时不好么?
顺便说一句......那个MIPS的UNIX系统的图形界面.......实在不敢恭维............一个硬件平台速度再快,性能再强,如果没有好的操作性,顶多也就是像我们这钟地方买一点,用来做苦力计算,永远也无法成为主流硬件的.......这个是在明显不过的道理了 ^_^b
还有一个问题......就是好像你说用VMWare可以打CS? 哈哈,不知道你打过没有.....-_-|||||| 运行在虚拟硬件下,一个操作系统是无法接触到任何硬件的,这个是Virtual Machine的定义。一个操作系统需要的任何硬件,必须有一个对应的虚拟硬件提供支持。
你要用VM打CS,不是不行,但是你至少需要一个支持DirectX 3D加速的显卡,一个声卡。这些VMWare有么?到目前为止我只见到过VMWare有一个虚拟显卡,支持DirectX 2D但是不支持3D,声卡就更不要说了。不过也可能是我孤陋寡闻,你可以拿出东西来反驳我。
哪你说:"没有又怎么样,我自己写一个!" 好,就算你够强,能写出一个支持DirectX 3D指令的虚拟显卡驱动,装进VMWare。但是你面对的将是绝对的效率问题! 因为没有硬件支持,所有的指令都需要软件处理。不要告诉我你的硬件如何如何的强,那根本没有任何意义! 因为目前基本的物理极限就限制了你的"软显卡"的速度,道理很简单,听我慢慢道来:
假设一个Shader伪指令由300个指令组成, 涉及显存4MB.
1. 有硬件支持
1.1. 指令发送到显卡需要15ns; (包括指令存取,硬件中断和总线操作)
1.2. R350处理器350MHz, 需要大约900ns完成处理这个伪指令, 并更新显存(有硬件支持流水线操作,故可以不计显存存取时间);
* 总共需要时间大约1000ns
2. 软件模拟:
1.1. 指令发送到虚拟显卡, 大概 160 条指令 + :
虚拟指令存取: 50 inst虚拟机内存地址转换 + 5 inst 内存读取;
虚拟指令解释: 100 inst虚拟CPU解释 + 30 inst 虚拟硬件中断;
虚拟指令传递: 100 inst虚拟设备查询 + 80 inst 虚拟显卡接口;
1.2. 软显卡解释执行伪指令, 1400 inst + 60,000ns:
指令查询: 200 inst
指令执行: 300 * 4 = 1200 inst (因为没有专业硬件,所以算平均每条图形指令需要大约4条通用指令达成)
"显存"更新: 4MB = 60,000 ns (没有硬件支持的内存移动,就算总线带宽60GB,而且不算其它任何多余的时间,也就是如此)
* 总共需要时间: 大约1600inst + 60,000ns
* 执行1600条指令,就算处理能力达到25GHz的RISC系统,也至少需要50ns,但问题是整个1600条指令大概分成至少8个子过程,内存中的物理位置也不尽相同,CPU的Cache总会失效2-3次吧,这样又增加了20~30ns的读取时间。
* 所以总共处理时间大约为 60,080ns
*以上按照5ns的内存存取时间计算的。
赫赫,看到差别了吧,关键问题不是在于处理时间,而是接口时间上!!! 你只看到Power5的处理能力有多强: 你看80ns的处理时间比1000ns强到哪里去了!但是没有看到接口才是关键啊: 60,000ns - 慢了整整60倍!
你说,我要提升内存存取速度,整个系统全部用L3 cache! 赫赫,那就是你有钱了......估计Gates叔叔也不敢和你比。 不过就算全部用1ns存取的L3 Cache, 也有整整10,000ns啊......-_-||||||||
还有,整个计算全都是在假设整个系统只运行一个程序的。如果你学习过计算机操作系统,就会知道,如果有多个程序运行(这几乎是肯定的),那么就需要有Lock, Mutex, Semaphore等同步保护机制避免程序间的存取冲突。同理,这些同步保护对象因为涉及内存操作,其性能也是受到硬件制约的,再强的系统,同步保护对象每秒钟的最大操作次数也是一定的,超过这个数量的存取率就会造成程序的等待,这就是为什么没有多任务系统可以达到100%的CPU利用率的原因。
赫赫,侃了这么多,就是为了告诉你,不要小看了硬件的作用.......众多显卡厂商这么苦心的开发越来越高级的显卡,并不是因为CPU处理太慢,而是因为有实实在在,不可逾越的物理瓶颈...............想想看,如果Intel明天突然发布一款25GHz的CPU, ATI和NV的老总就会跳楼么?我看他们不仅不会跳楼,还会乐滋滋的作在皮椅子上计算下一季度销量会上升几十个百分点......... 至于AMD的老总么....就说不定了^^b
BTW 有一个小实验你可以做做: 使用一个可以连续快速考屏的程序,比如HyperSnap或者HyperCam,设定连续捕捉一个1024x768的区域,每秒25帧,就可以大概造成大约4MB的显存每秒从显卡流向系统内存25次,看看你还能做什么...... ^_^