找回密码
 立即注册
搜索
查看: 5563|回复: 39

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

[复制链接]
     
发表于 2010-11-27 00:35 | 显示全部楼层 |阅读模式
关于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旗舰正版
这配置应该不算太差吧?
以下是我的运行结果 


回复

使用道具 举报

     
发表于 2010-11-27 00:57 | 显示全部楼层
说实话……比我想象的好得多……
拿内存做Z比对,居然有1/10性能……
A卡的Z轴压缩算法应该起到了作用。
回复

使用道具 举报

     
发表于 2010-11-27 00:57 | 显示全部楼层
按空格无反应
回复

使用道具 举报

     
 楼主| 发表于 2010-11-27 01:01 | 显示全部楼层
抱歉,exe文件传错了orz
马上替换
回复

使用道具 举报

     
 楼主| 发表于 2010-11-27 01:02 | 显示全部楼层
引用第1楼卖哥于2010-11-27 00:57发表的  :
说实话……比我想象的好得多……
拿内存做Z比对,居然有1/10性能……
A卡的Z轴压缩算法应该起到了作用。
这和Z轴压缩有啥联系吗?
就算关掉深度测试结果也没什么差别
回复

使用道具 举报

     
发表于 2010-11-27 01:08 | 显示全部楼层
有联系呀,785G开了压缩,同为没有额外16bit显存的情况下,比780G性能好30%。
低带宽情况下,ATI专利的Z轴压缩贡献非常大。
回复

使用道具 举报

     
发表于 2010-11-27 01:08 | 显示全部楼层
我4830都130X FPS了
按了下空格飙升到3200+
回复

使用道具 举报

     
 楼主| 发表于 2010-11-27 01:13 | 显示全部楼层
引用第5楼卖哥于2010-11-27 01:08发表的  :
有联系呀,785G开了压缩,同为没有额外16bit显存的情况下,比780G性能好30%。
低带宽情况下,ATI专利的Z轴压缩贡献非常大。
我说的是内存与显存的渲染速度差距
回复

使用道具 举报

     
 楼主| 发表于 2010-11-27 01:15 | 显示全部楼层
引用第6楼keytomylife于2010-11-27 01:08发表的  :
我4830都130X FPS了
按了下空格飙升到3200+
内存渲染速度会有很大变化的,你运行十几秒再看看
回复

使用道具 举报

     
发表于 2010-11-27 01:20 | 显示全部楼层
很稳定130X-132X啊
回复

使用道具 举报

头像被屏蔽
     
发表于 2010-11-27 01:37 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

头像被屏蔽
发表于 2010-11-27 01:55 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2010-11-27 04:57 | 显示全部楼层
GPU 的设计就是要把所有东西放在它里面算才会快,所以才会有各种 Shader,把原本需要 CPU 的运算也交给 GPU。
我想主要还是因为图像处理有并行运算的特点吧。日后 CPU 核心数多了说不定就不需要 GPU 了。
回复

使用道具 举报

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

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

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

使用道具 举报

     
发表于 2010-11-27 08:46 | 显示全部楼层
试了下,不算太惨。

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

求解惑。
回复

使用道具 举报

     
 楼主| 发表于 2010-11-27 11:31 | 显示全部楼层
引用第10楼HyperIris于2010-11-27 01:37发表的  :
真正的慢是cpu回读显存数据而不是你这种情况
除了hdr之外似乎一般不需要这么做,现在没人用渲染来实现运算吧?
回复

使用道具 举报

     
 楼主| 发表于 2010-11-27 12:52 | 显示全部楼层
引用第14楼uroko于2010-11-27 08:46发表的  :
试了下,不算太惨。

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

使用道具 举报

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


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

使用道具 举报

     
 楼主| 发表于 2010-11-27 13:50 | 显示全部楼层
隔壁某帖很多人认为GPU读内存不影响速度
回复

使用道具 举报

发表于 2010-11-27 13:55 | 显示全部楼层
到GPU和CPU融合这块
影响就小了吧 ?  
总线走的是一块儿的?
回复

使用道具 举报

     
 楼主| 发表于 2010-11-27 14:00 | 显示全部楼层
引用第19楼ov_efly于2010-11-27 13:55发表的  :
到GPU和CPU融合这块
影响就小了吧 ?  
总线走的是一块儿的?
看目前这架势,高性能gpu融合到cpu,流行起来最起码要10年
也许到时候又开始流行体素渲染或者实时光线追踪,然后再来个什么其他**PU分出来
回复

使用道具 举报

     
发表于 2010-11-27 14:05 | 显示全部楼层
sb 那结构是没影响,可与nv 的显卡相比,结果不一定好,尤其是天河一号秒了全世界之后

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

使用道具 举报

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

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

使用道具 举报

发表于 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的问题还是在它本身是一个抢占式多任务操作系统,无法预测某条线程会在什么时候执行,这种环境下根本没法做优化,也就只能做做指令层面的,比如展开循环,常量替换变量,预计算替换运行时计算之类的工作了
所以说Intel推出的MMX和SSE系列是好东西
回复

使用道具 举报

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

windows的问题还是在它本身是一个抢占式多任务操作系统,无法预测某条线程会在什么时候执行,这种环境下根本没法做优化,也就只能做做指令层面的,比如展开循环,常量替换变量,预计算替换运行时计算之类的工作了
我是说gpu的兼容性
别的不提
intel amd NV这三家在opengl“各有特色”
只用一台电脑写程序,八成到了其他电脑上就运行不能
回复

使用道具 举报

     
发表于 2010-11-27 17:25 | 显示全部楼层
pcie太慢了,3.0还是慢了
回复

使用道具 举报

     
发表于 2010-11-27 18:19 | 显示全部楼层
本来想进来吐槽,结果发现有专业人士洗地....

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

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

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

使用道具 举报

     
发表于 2010-11-27 19:01 | 显示全部楼层
切身体会,n卡玩pcsx2确实比a卡快不少,特别是某些特定情况下

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




回复

使用道具 举报

     
发表于 2010-11-27 19:02 | 显示全部楼层
最典型的就是机战ZSP的自由战斗模式里,选择机体时,a卡速度几乎要比n卡慢一半以上
回复

使用道具 举报

     
 楼主| 发表于 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

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

使用道具 举报

     
发表于 2010-11-27 19:05 | 显示全部楼层
然后就是CPU了
CPU的二级缓存对于pcsx2而言也非常重要
相同频率相同架构的情况下,二级缓存(或三级缓存)1m和2m比,速度起码相差10%以上

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

使用道具 举报

     
发表于 2010-11-27 20:00 | 显示全部楼层
内存渲染速度关显卡什么事
我用3.5G X4 920 4830还不是一样1300+
显卡还完全没超,内存反而把各种参数设高了
回复

使用道具 举报

     
 楼主| 发表于 2010-11-27 21:21 | 显示全部楼层
引用第33楼keytomylife于2010-11-27 20:00发表的  :
内存渲染速度关显卡什么事
我用3.5G X4 920 4830还不是一样1300+
显卡还完全没超,内存反而把各种参数设高了
因为是gpu从内存读数据
当然和显卡有关系,原代码我也给了
回复

使用道具 举报

     
发表于 2010-11-27 23:31 | 显示全部楼层
切换前切换后都一样,FPS稳定在60,啥情况……
回复

使用道具 举报

     
 楼主| 发表于 2010-11-28 00:01 | 显示全部楼层
引用第35楼cxn于2010-11-27 23:31发表的  :
切换前切换后都一样,FPS稳定在60,啥情况……
关掉垂直同步
回复

使用道具 举报

     
发表于 2010-11-28 00:47 | 显示全部楼层
E7500没有集成内存控制器 我记得。。要走北桥
回复

使用道具 举报

     
发表于 2010-11-28 02:17 | 显示全部楼层
引用第31楼oz01于2010-11-27 19:04发表的  :

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

我才注意到你用的是a 卡

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

使用道具 举报

     
 楼主| 发表于 2010-11-28 17:26 | 显示全部楼层
引用第38楼精钢魔像于2010-11-28 02:17发表的  :


我才注意到你用的是a 卡

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2025-9-16 03:33 , Processed in 0.189907 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表