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

  • o
    oz01
    关于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旗舰正版
    这配置应该不算太差吧?
    以下是我的运行结果


  • 卖哥
    说实话……比我想象的好得多……
    拿内存做Z比对,居然有1/10性能……
    A卡的Z轴压缩算法应该起到了作用。
  • l
    lilac546
    按空格无反应
  • o
    oz01
    抱歉,exe文件传错了orz
    马上替换
  • o
    oz01
    这和Z轴压缩有啥联系吗?
    就算关掉深度测试结果也没什么差别
  • 卖哥
    有联系呀,785G开了压缩,同为没有额外16bit显存的情况下,比780G性能好30%。
    低带宽情况下,ATI专利的Z轴压缩贡献非常大。
  • k
    keytomylife
    我4830都130X FPS了
    按了下空格飙升到3200+
  • o
    oz01
    我说的是内存与显存的渲染速度差距
  • o
    oz01
    内存渲染速度会有很大变化的,你运行十几秒再看看
  • k
    keytomylife
    很稳定130X-132X啊
  • H
    HyperIris
    真正的慢是cpu回读显存数据而不是你这种情况
  • @
    @eric
    GPU 的设计就是要把所有东西放在它里面算才会快,所以才会有各种 Shader,把原本需要 CPU 的运算也交给 GPU。
    我想主要还是因为图像处理有并行运算的特点吧。日后 CPU 核心数多了说不定就不需要 GPU 了。
  • k
    kaori
    不用日後了...sandy bridge已經這樣做了...

    雖然形式上有稍稍不同...但整合的理念是一樣的....
  • u
    uroko
    试了下,不算太惨。

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

    求解惑。
  • o
    oz01
    除了hdr之外似乎一般不需要这么做,现在没人用渲染来实现运算吧?
  • o
    oz01
    问题是gpu能做的事太少了,太不灵活了
  • 精钢魔像
    gpu 是3d 加速卡发展来的,当年3d 加速卡的设计理念就是“软件能做的硬件都能做,而且速度一定比软件快”,其实也就是把3d 需要的算法以硬件实现放显卡里,结果也和理论一样,硬件 t&l 让pc 游戏跑步进入了3d 时代,毫无技术含量但很有用。问题在3d 计算的数据很庞大,显卡又不像cpu 那样有总线上的优势,总不能另搞个pc 体系吧,那增加显存来减少数据交换就自然而然了


    显存内存,也就是个内存分配策略的问题。在cpu 上编程,一样要考虑是分配在栈上还是分配在堆上,超过了硬件和操作系统的能力结果也不会好。显卡编程也可以沿用这种思路,明知短处还要硬上,不是知识不全就是另有目的吧
  • o
    oz01
    隔壁某帖很多人认为GPU读内存不影响速度
  • o
    ov_efly
    到GPU和CPU融合这块
    影响就小了吧 ?
    总线走的是一块儿的?
  • o
    oz01
    看目前这架势,高性能gpu融合到cpu,流行起来最起码要10年
    也许到时候又开始流行体素渲染或者实时光线追踪,然后再来个什么其他**PU分出来
  • 精钢魔像
    sb 那结构是没影响,可与nv 的显卡相比,结果不一定好,尤其是天河一号秒了全世界之后

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

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

    windows的问题还是在它本身是一个抢占式多任务操作系统,无法预测某条线程会在什么时候执行,这种环境下根本没法做优化,也就只能做做指令层面的,比如展开循环,常量替换变量,预计算替换运行时计算之类的工作了
  • 查克海耶斯
    所以说Intel推出的MMX和SSE系列是好东西
  • o
    oz01
    我是说gpu的兼容性
    别的不提
    intel amd NV这三家在opengl“各有特色”
    只用一台电脑写程序,八成到了其他电脑上就运行不能
  • n
    nintendoll
    pcie太慢了,3.0还是慢了
  • y
    yibabilun
    本来想进来吐槽,结果发现有专业人士洗地....

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

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

    天河实际利用效率上不去,关键还是这个。性能再好,用来移植的时间都可以做个项目了……
  • h
    highsky
    切身体会,n卡玩pcsx2确实比a卡快不少,特别是某些特定情况下

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




  • h
    highsky
    最典型的就是机战ZSP的自由战斗模式里,选择机体时,a卡速度几乎要比n卡慢一半以上
  • o
    oz01
    内存渲染速度是我的三倍,联邦的MS,啊不,黄老板的显卡都是怪物吗
  • h
    highsky
    然后就是CPU了
    CPU的二级缓存对于pcsx2而言也非常重要
    相同频率相同架构的情况下,二级缓存(或三级缓存)1m和2m比,速度起码相差10%以上

    个人推荐一下现在性价比最高的玩模拟器的典型配置
    i3+h55主板+460
  • k
    keytomylife
    内存渲染速度关显卡什么事
    我用3.5G X4 920 4830还不是一样1300+
    显卡还完全没超,内存反而把各种参数设高了
  • o
    oz01
    因为是gpu从内存读数据
    当然和显卡有关系,原代码我也给了
  • c
    cxn
    切换前切换后都一样,FPS稳定在60,啥情况……
  • o
    oz01
    关掉垂直同步
  • C
    Cray
    E7500没有集成内存控制器 我记得。。要走北桥
  • 精钢魔像
    我才注意到你用的是a 卡

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