oz01 发表于 2010-11-27 00:35

关于gpu与cpu之间的传输速度

关于gpu与cpu之间的传输速度,大家可以试试看这个demo,里有源代码: http://oz01.512j.com/p/vbo.zip

修改自:http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=45
这是opengl官方推荐的教学,可不是我自己随便写的烂代码

这个demo可以选择模型数据是放在内存里渲染还是放在显存里渲染
HD5750/E7500/2GDDR2/win7旗舰正版
这配置应该不算太差吧?
以下是我的运行结果 

http://oz01.512j.com/p/vbo1.jpg
http://oz01.512j.com/p/vbo2.jpg

卖哥 发表于 2010-11-27 00:57

说实话……比我想象的好得多……
拿内存做Z比对,居然有1/10性能……
A卡的Z轴压缩算法应该起到了作用。

lilac546 发表于 2010-11-27 00:57

按空格无反应

oz01 发表于 2010-11-27 01:01

抱歉,exe文件传错了orz
马上替换

oz01 发表于 2010-11-27 01:02

引用第1楼卖哥于2010-11-27 00:57发表的:
说实话……比我想象的好得多……
拿内存做Z比对,居然有1/10性能……
A卡的Z轴压缩算法应该起到了作用。 images/back.gif

这和Z轴压缩有啥联系吗?
就算关掉深度测试结果也没什么差别

卖哥 发表于 2010-11-27 01:08

有联系呀,785G开了压缩,同为没有额外16bit显存的情况下,比780G性能好30%。
低带宽情况下,ATI专利的Z轴压缩贡献非常大。

keytomylife 发表于 2010-11-27 01:08

我4830都130X FPS了
按了下空格飙升到3200+

oz01 发表于 2010-11-27 01:13

引用第5楼卖哥于2010-11-27 01:08发表的:
有联系呀,785G开了压缩,同为没有额外16bit显存的情况下,比780G性能好30%。
低带宽情况下,ATI专利的Z轴压缩贡献非常大。 images/back.gif

我说的是内存与显存的渲染速度差距

oz01 发表于 2010-11-27 01:15

引用第6楼keytomylife于2010-11-27 01:08发表的:
我4830都130X FPS了
按了下空格飙升到3200+
images/back.gif

内存渲染速度会有很大变化的,你运行十几秒再看看

keytomylife 发表于 2010-11-27 01:20

很稳定130X-132X啊

HyperIris 发表于 2010-11-27 01:37

kawaii 发表于 2010-11-27 01:55

@eric 发表于 2010-11-27 04:57

GPU 的设计就是要把所有东西放在它里面算才会快,所以才会有各种 Shader,把原本需要 CPU 的运算也交给 GPU。
我想主要还是因为图像处理有并行运算的特点吧。日后 CPU 核心数多了说不定就不需要 GPU 了。

kaori 发表于 2010-11-27 05:01

引用第12楼@eric于2010-11-27 04:57发表的  :
GPU 的设计就是要把所有东西放在它里面算才会快,所以才会有各种 Shader,把原本需要 CPU 的运算也交给 GPU。
我想主要还是因为图像处理有并行运算的特点吧。日后 CPU 核心数多了说不定就不需要 GPU 了。 images/back.gif


不用日後了...sandy bridge已經這樣做了...

雖然形式上有稍稍不同...但整合的理念是一樣的....

uroko 发表于 2010-11-27 08:46

试了下,不算太惨。

说到这个,我忽然想起cpu和gpu间传输效率低下似乎是鬼子说PC架构不适合游戏的理由。
我没弄过图形编程,不过还是有个疑问“为什么会有和显存交换大量数据的需求?”。
按我的理解gpu专门处理图像显示—表现层的东西就可以了,自己往里面下了什么渲染命令会有什么处理结果似乎不需要一一读出来才知道啊……

求解惑。

oz01 发表于 2010-11-27 11:31

引用第10楼HyperIris于2010-11-27 01:37发表的:
真正的慢是cpu回读显存数据而不是你这种情况 images/back.gif

除了hdr之外似乎一般不需要这么做,现在没人用渲染来实现运算吧?

oz01 发表于 2010-11-27 12:52

引用第14楼uroko于2010-11-27 08:46发表的:
试了下,不算太惨。

说到这个,我忽然想起cpu和gpu间传输效率低下似乎是鬼子说PC架构不适合游戏的理由。
我没弄过图形编程,不过还是有个疑问“为什么会有和显存交换大量数据的需求?”。
按我的理解gpu专门处理图像显示—表现层的东西就可以了,自己往里面下了什么渲染命令会有什么处理结果似乎不需要一一读出来才知道啊……
....... images/back.gif

问题是gpu能做的事太少了,太不灵活了

精钢魔像 发表于 2010-11-27 13:36

gpu 是3d 加速卡发展来的,当年3d 加速卡的设计理念就是“软件能做的硬件都能做,而且速度一定比软件快”,其实也就是把3d 需要的算法以硬件实现放显卡里,结果也和理论一样,硬件 t&l 让pc 游戏跑步进入了3d 时代,毫无技术含量但很有用。问题在3d 计算的数据很庞大,显卡又不像cpu 那样有总线上的优势,总不能另搞个pc 体系吧,那增加显存来减少数据交换就自然而然了


显存内存,也就是个内存分配策略的问题。在cpu 上编程,一样要考虑是分配在栈上还是分配在堆上,超过了硬件和操作系统的能力结果也不会好。显卡编程也可以沿用这种思路,明知短处还要硬上,不是知识不全就是另有目的吧

oz01 发表于 2010-11-27 13:50

隔壁某帖很多人认为GPU读内存不影响速度

ov_efly 发表于 2010-11-27 13:55

到GPU和CPU融合这块
影响就小了吧 ?
总线走的是一块儿的?

oz01 发表于 2010-11-27 14:00

引用第19楼ov_efly于2010-11-27 13:55发表的:
到GPU和CPU融合这块
影响就小了吧 ?  
总线走的是一块儿的?
images/back.gif

看目前这架势,高性能gpu融合到cpu,流行起来最起码要10年
也许到时候又开始流行体素渲染或者实时光线追踪,然后再来个什么其他**PU分出来

精钢魔像 发表于 2010-11-27 14:05

sb 那结构是没影响,可与nv 的显卡相比,结果不一定好,尤其是天河一号秒了全世界之后

软件的东西除了硬件的实力还要看技术的积累和发展。那么多年积累下来的x86 代码和发展出来的编译技术非同小可,也是intel 的立身之本,但我觉得sb cpu 不会给市场催生出什么变化——玩游戏的人还是会买gpu,不玩游戏的人选上网本,像我这种偶尔玩玩游戏的人就用集显凑合——对比硬件技术,其实软件技术发展得更慢,就现在的软件,根本配不上最新的处理器啊

oz01 发表于 2010-11-27 14:11

引用第21楼精钢魔像于2010-11-27 14:05发表的:
sb 那结构是没影响,可与nv 的显卡相比,结果不一定好,尤其是天河一号秒了全世界之后

软件的东西除了硬件的实力还要看技术的积累和发展。那么多年积累下来的x86 代码和发展出来的编译技术非同小可,也是intel 的立身之本,但我觉得sb cpu 不会给市场催生出什么变化——玩游戏的人还是会买gpu,不玩游戏的人选上网本,像我这种偶尔玩玩游戏的人就用集显凑合——对比硬件技术,其实软件技术发展得更慢,就现在的软件,根本配不上最新的处理器啊 images/back.gif

硬件变化太快,软件跟不上速度
软件还得考虑兼容大多数

ov_efly 发表于 2010-11-27 15:31

说白还是兼容拖的后退
像windows的兼容包袱就很大
还好有了虚拟化技术
以后老游戏都走这块了

独立PU的话
现在物理计算卡有独立出来了....

精钢魔像 发表于 2010-11-27 16:48

windows 的兼容性很不错,像 com 就简直是神级的兼容技术:新代码向老接口兼容,编译器无关,语言无关,原生二进制码效率100%,就是dll 注册比较麻烦,但也可以自己绕过注册表。如此nb 的技术除了微软自己没人用很让人费解,大概是大部分的公司都把程序看成消费品吧,不合适了就重新build,而不是只build 需要build 的部分

windows的问题还是在它本身是一个抢占式多任务操作系统,无法预测某条线程会在什么时候执行,这种环境下根本没法做优化,也就只能做做指令层面的,比如展开循环,常量替换变量,预计算替换运行时计算之类的工作了

查克海耶斯 发表于 2010-11-27 17:03

引用第24楼精钢魔像于2010-11-27 16:48发表的:
windows的问题还是在它本身是一个抢占式多任务操作系统,无法预测某条线程会在什么时候执行,这种环境下根本没法做优化,也就只能做做指令层面的,比如展开循环,常量替换变量,预计算替换运行时计算之类的工作了 images/back.gif

所以说Intel推出的MMX和SSE系列是好东西

oz01 发表于 2010-11-27 17:07

引用第24楼精钢魔像于2010-11-27 16:48发表的:
windows 的兼容性很不错,像 com 就简直是神级的兼容技术:新代码向老接口兼容,编译器无关,语言无关,原生二进制码效率100%,就是dll 注册比较麻烦,但也可以自己绕过注册表。如此nb 的技术除了微软自己没人用很让人费解,大概是大部分的公司都把程序看成消费品吧,不合适了就重新build,而不是只build 需要build 的部分

windows的问题还是在它本身是一个抢占式多任务操作系统,无法预测某条线程会在什么时候执行,这种环境下根本没法做优化,也就只能做做指令层面的,比如展开循环,常量替换变量,预计算替换运行时计算之类的工作了 images/back.gif

我是说gpu的兼容性
别的不提
intel amd NV这三家在opengl“各有特色”
只用一台电脑写程序,八成到了其他电脑上就运行不能

nintendoll 发表于 2010-11-27 17:25

pcie太慢了,3.0还是慢了

yibabilun 发表于 2010-11-27 18:19

本来想进来吐槽,结果发现有专业人士洗地....

内存和gpu的数据交换……只要还是现在的模式,那么就不可能天然地适应使用大量并行线程还需要用超多虚拟线程掩盖延时、缓存机制也很原始的状态。带宽再大,几万个线程没事就借个锤子扳手什么的照样要悲剧。

现在gpu计算还是卡在访问效率上。。毕竟带宽平均下来还是成问题,要大部分开发者把现有的程序移植一下不难,但是要优化到缓存访问机制,搞到压缩传到shader再解压啥的,就强人所难了。

天河实际利用效率上不去,关键还是这个。性能再好,用来移植的时间都可以做个项目了……

highsky 发表于 2010-11-27 19:01

切身体会,n卡玩pcsx2确实比a卡快不少,特别是某些特定情况下

下面是我的测试截图
配置是i5 750 oc to 3.5g,显卡是460 1g oc to 780mhz



http://bbs.saraba1st.com/2b/p_w_upload/mutiupload/0_4957_27cca71c2663a2d.jpg
http://bbs.saraba1st.com/2b/p_w_upload/mutiupload/0_4957_86704a972cc5d2e.jpg

highsky 发表于 2010-11-27 19:02

最典型的就是机战ZSP的自由战斗模式里,选择机体时,a卡速度几乎要比n卡慢一半以上

oz01 发表于 2010-11-27 19:04

引用第29楼highsky于2010-11-27 19:01发表的:
切身体会,n卡玩pcsx2确实比a卡快不少,特别是某些特定情况下

下面是我的测试截图
配置是i5 750 oc to 3.5g,显卡是460 1g oc to 780mhz

....... images/back.gif

内存渲染速度是我的三倍,联邦的MS,啊不,黄老板的显卡都是怪物吗

highsky 发表于 2010-11-27 19:05

然后就是CPU了
CPU的二级缓存对于pcsx2而言也非常重要
相同频率相同架构的情况下,二级缓存(或三级缓存)1m和2m比,速度起码相差10%以上

个人推荐一下现在性价比最高的玩模拟器的典型配置
i3+h55主板+460

keytomylife 发表于 2010-11-27 20:00

内存渲染速度关显卡什么事
我用3.5G X4 920 4830还不是一样1300+
显卡还完全没超,内存反而把各种参数设高了

oz01 发表于 2010-11-27 21:21

引用第33楼keytomylife于2010-11-27 20:00发表的:
内存渲染速度关显卡什么事
我用3.5G X4 920 4830还不是一样1300+
显卡还完全没超,内存反而把各种参数设高了 images/back.gif

因为是gpu从内存读数据
当然和显卡有关系,原代码我也给了

cxn 发表于 2010-11-27 23:31

切换前切换后都一样,FPS稳定在60,啥情况……

oz01 发表于 2010-11-28 00:01

引用第35楼cxn于2010-11-27 23:31发表的:
切换前切换后都一样,FPS稳定在60,啥情况…… images/back.gif

关掉垂直同步

Cray 发表于 2010-11-28 00:47

E7500没有集成内存控制器 我记得。。要走北桥

精钢魔像 发表于 2010-11-28 02:17

引用第31楼oz01于2010-11-27 19:04发表的:

内存渲染速度是我的三倍,联邦的MS,啊不,黄老板的显卡都是怪物吗 images/back.gif


我才注意到你用的是a 卡

在windows 上玩opengl 已经阻力不小,用的还是a 卡,是磨练意志么

oz01 发表于 2010-11-28 17:26

引用第38楼精钢魔像于2010-11-28 02:17发表的:


我才注意到你用的是a 卡

在windows 上玩opengl 已经阻力不小,用的还是a 卡,是磨练意志么 images/back.gif

linux上也玩不起opengl
页: [1]
查看完整版本: 关于gpu与cpu之间的传输速度