POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

搜索
楼主: Edison
打印 上一主题 下一主题

全球第一个第三方D3D10 shader级别性能测试

[复制链接]
来不及思考 该用户已被删除
121#
发表于 2007-7-21 15:48 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

122#
发表于 2007-7-21 16:18 | 只看该作者
那么我也有问题了,不是说Sm3.0具备简单的分支能力吗?那么对比Sm2.0b,这分支到底是用什么去做?
回复 支持 反对

使用道具 举报

RacingPHT 该用户已被删除
123#
发表于 2007-7-21 16:31 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

124#
发表于 2007-7-21 16:37 | 只看该作者
原帖由 RacingPHT 于 2007-7-21 14:34 发表
公开的资料中, GPU的cache包括vertex pre-transform cache, post-transform cache, texture cache, DX10还包括constant buffer cache.

GPU的prefech是基于texture tile的prefetch. prefetch是为了降低cache miss rate, 和thread是两个不同(但是相关)的概念。

任何cache miss rate都不是固定的。但是GPU的数据本地性非常好, 所以cache即使很小也可以获得很高的命中率。我个人猜测NV40-R5xx这一代的GPU通常只能维持~20-40个thread, 如果没有足够高的hit rate, 性能会低得不堪设想。


GPU的localize會好只有在Texture filtering的時候吧?
filtering基本上只有已經cache hit的時候才作,然後Texture Addressing的時候也會有大半是cache miss的....

以整個GPU來說,NV40的thread大約是100前後,但是分成4個quad,所以應該也是在20~40前後,加上比較頻繁的分支(每128pixel左右)時性能的確是低得不堪一擊。
R520有512個thread分成4個quad,RV530是128個thread,討論架構應該以這個為單位。
回复 支持 反对

使用道具 举报

RacingPHT 该用户已被删除
125#
发表于 2007-7-21 16:54 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

来不及思考 该用户已被删除
126#
发表于 2007-7-21 17:31 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

127#
 楼主| 发表于 2007-7-21 17:44 | 只看该作者
hitrate=1/miss rate,这两个东西根本就是互为倒数关系,并非分立的指标。

一般来说,cache的性能就是它的access time,在多层次存取中就是Average memory access time。

Average memory access time = Hit time + Miss rate × Miss penalty

很显然,在设计cache的时候,主要就是缩减 hit time、miss rate、miss penalty。

FGMT说到底只是能掩藏cache miss的时间,但是如果cache并没有miss的话,例如bilinear/anisotropic/trilinear filter的texel一般都能在tex cache中抓到,这个时候的瓶颈还是在bilinear filter能力/单元数量上。

rightmark 3d 2.0中R600目前的表现应该部分卡在驱动的bug、部分卡在VTF单元数量。
回复 支持 反对

使用道具 举报

RacingPHT 该用户已被删除
128#
发表于 2007-7-21 17:55 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

RacingPHT 该用户已被删除
129#
发表于 2007-7-21 18:02 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

来不及思考 该用户已被删除
130#
发表于 2007-7-21 18:24 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

RacingPHT 该用户已被删除
131#
发表于 2007-7-21 19:57 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

132#
发表于 2007-7-21 22:26 | 只看该作者
X2900原来那么强的说
回复 支持 反对

使用道具 举报

133#
发表于 2007-7-21 22:41 | 只看该作者
后面的基本上看不懂了。不过2900xtDX10性能看来很难有起色是肯定的了。
回复 支持 反对

使用道具 举报

134#
发表于 2007-7-21 22:46 | 只看该作者
原帖由 flymop 于 2007-7-20 21:19 发表
FT啊
这哪是FX附体
这明明不是当年的S3么

那个野人2000哈w00t) w00t) w00t)
回复 支持 反对

使用道具 举报

pharaohs1024 该用户已被删除
135#
发表于 2007-7-21 23:55 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

136#
发表于 2007-7-22 15:14 | 只看该作者
有几个问题想请教RacingPHT 和 思考:

至于thread数量,G80一共有8个TPC,每个TPC拥有两个multiprocessor,每个multiprocessor具备24个warp,每个warp拥有32个独立的thread....你可以自己算一下一共有多少个thread

可以算一下,一共有8 * 2 * 24 * 32个thread,但同时有128 个scalar process, 平均每个96个thread, 而
现代内存系统在1.35Ghz的处理器上的延迟大概是200-300个cycle


实做中shader的temp寄存器直接影响到thread的数目, 所以实际的thread数量远远达不到理论的水平。20个thread是一个实际我见到的数目。


可以解释一下为什么吗?

另 for 思考: 你引用David B.Kirk的这段话,难道你忘了这位老兄曾经给我们开的大玩笑吗? "G80 是non-unify-shader"

"但是我后来的观点“GPU不具备类似CPU那种类型的perfetch体系”,我认为依然是正确的"


我不知道什么是“CPU那种类型的perfetch体系“,能否给解释一下。但任何一种cache,遇到miss后都不会只fetch当前所需的数据,而是一整条cache-line,从而保证以后的若干request是hit.即如RacingPHT如说的texture fetch的例子。

So, 我认为无所谓"build for hit" or "build for miss", 在实作中既有尽量保证数据相关性以提高hit rate,又要有诸如multi-thread的方法来cover latency.
回复 支持 反对

使用道具 举报

137#
 楼主| 发表于 2007-7-22 22:41 | 只看该作者
iXBT的老大刚刚和我说,他们将会在明天正式发表这篇测试文章,大家拭目以待。
回复 支持 反对

使用道具 举报

RacingPHT 该用户已被删除
138#
发表于 2007-7-23 00:09 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

139#
发表于 2007-7-23 02:45 | 只看该作者
其实我觉得思考说"GPU没有CPU那样的Cache"
简单的理解就是说从GPU cache机制更多的是为了texture fetch服务的
CPU可以从cache中抓到想要的所有数据 只要必要
但是GPU 的渲染流程来看 Cache是保证平行度 减少stall的东西
毕竟GPU不是从内存抓数据开始整个管线

而单纯看待cache而言 cache的特性和应用是不会有什么本质不同
但是从CPU和GPU的整体特性上 他们的地位 和解决的问题取向有少许差异

[ 本帖最后由 ayanamei 于 2007-7-23 02:49 编辑 ]
回复 支持 反对

使用道具 举报

140#
发表于 2007-7-23 03:05 | 只看该作者
原帖由 RacingPHT 于 2007-7-23 00:09 发表


1: GPU调度的单位名义是thread,但实质上则是一组thread。
2: 某个硬件的thread数量不是固定的, 而大体上与程序的寄存器需求呈倒数关系。shader越复杂则thread数量越少,实际获得的IPC就越低。
3: 对于G8 ...

G80 每个MP 拥有独立的constant memory 和shared memory
应该有register file的替换机制才对 将stall theading所需的资源替换出来 让其他theading使用
这样TPC最终最大能管理的threading数量和实际
constant register决定的parallel-threading的总量了就不存在什么冲突了

[ 本帖最后由 ayanamei 于 2007-7-23 03:10 编辑 ]
回复 支持 反对

使用道具 举报

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

本版积分规则

广告投放或合作|网站地图|处罚通告|

GMT+8, 2026-1-11 21:46

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

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