POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

搜索
楼主: 樟树
打印 上一主题 下一主题

非对称显存性能带宽讨论

  [复制链接]
101#
 楼主| 发表于 2012-9-21 21:21 | 只看该作者
flhssnake 发表于 2012-9-21 19:09
楼主麻烦编下660ti的那个测试 我配合你

have a try

回复 支持 反对

使用道具 举报

102#
发表于 2012-9-21 21:23 | 只看该作者
mooncocoon 发表于 2012-9-21 21:12
接着我们刚才的事进行讨论。

正常显存的刷新可以尽快释放显存空间,同时被释放的还有地址线,这种占据 ...

你真是蠢得可以, 我很久不这么骂人了.

楼主本意就是要告诉你, 如果你要访问某些特定数据的时候, 就会遇到所谓的1/3带宽瓶颈问题, 虽然在实际应用中, 这种访问特定位置的数据的情况并不多见, 但这个问题是不可避免的, 也不是你那篇狗屁文章大谈特谈一些牛头不对马嘴的东西能解决的.
楼主已经说的很简单的, 他的代码的意图只是 连续分配一段数据到存储器中 (这些数据是暂时不用的), 然后再测试另一些数据的读写速度. 请问这种意图是你说的那种恶意的 "锁死" 吗?
这种情况在日常应用中是很可能出现的, 也不是恶意制造缺陷. 如果是对称的容量-位宽分配, 那么这种行为并不会导致带宽的下降. 只有在非对称设计中才会出现这种缺陷, 而且不可避免. 并且这是存储器本身的缺陷, 与控制器无关, 你MC无论多么牛逼都没用.

你是真蠢呢? 还是只是死好面子不想承认自己写了一篇废文?
回复 支持 反对

使用道具 举报

103#
发表于 2012-9-21 21:32 | 只看该作者
mooncocoon 发表于 2012-9-21 21:12
接着我们刚才的事进行讨论。

正常显存的刷新可以尽快释放显存空间,同时被释放的还有地址线,这种占据 ...

好好反省反省你自己立的靶子
而在非对称设计中,192-bit位宽、6GHz频率的总带宽为144.2GB/s,显存容量2GB的时候只有其中1.5GB可以享受到完全的交错操作,剩下的512MB只能与单个内存控制器通信,所以带宽也就是总量的1/3,仅仅为48GB/s。
如果你说的那堆马后炮的狗屁逻辑都成立的话, 请问你这靶子对准的非对称设计有什么问题? 因为按照你的 (狗屁) 逻辑, 完全占用某一块存储区域是不允许的. 2G的非对称搭配的拆分方式是512+512+1024, 那是不是可以说这2G中的那对称的512+512总占不满? 那这样的话岂不是总是可以达到峰值带宽? 为什么呢 因为顾大神说了, 那512+512是不允许被占满的! 不能锁死! 这样我们就总能得到最大理论带宽了!

结论: 按照你的逻辑, 你根本就是脱靶了, 还写什么奇葩文呢?
回复 支持 反对

使用道具 举报

104#
发表于 2012-9-21 21:34 | 只看该作者
本帖最后由 mooncocoon 于 2012-9-21 21:41 编辑
樟树 发表于 2012-9-21 21:17
我可没指向特定地址位,只不过分配了一定显存后,再分配一块看看带宽是不是符合非对称显存特征罢了。

...

我已经回家了,所以只能在家里用小水管拽CUDA TOOLKIT和computeSDK,等下下完了我用680跑跑看吧。截至到目前为止我依旧维持所有显卡都会出现同样问题的结论,如果出现了问题,我会尽量再去理解代码并寻找导致问题出现的地方。
回复 支持 反对

使用道具 举报

105#
 楼主| 发表于 2012-9-21 21:38 | 只看该作者
mooncocoon 发表于 2012-9-21 21:34
我已经回家了,所以只能在家里下载CUDA TOOLKIT和computeSDK,等下下完了我用680跑跑看吧。截至到目前为止 ...

我刚上传的代码不用SDK应该能跑。
回复 支持 反对

使用道具 举报

106#
发表于 2012-9-21 21:41 | 只看该作者
樟树 发表于 2012-9-21 21:38
我刚上传的代码不用SDK应该能跑。

但是没有CUDA.DLL,而且我觉得把环境弄利索了最好,可以消除不确定因素。
回复 支持 反对

使用道具 举报

westlee 该用户已被删除
107#
发表于 2012-9-21 21:41 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

westlee 该用户已被删除
108#
发表于 2012-9-21 21:45 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

109#
 楼主| 发表于 2012-9-21 21:47 | 只看该作者
westlee 发表于 2012-9-21 21:41
gtx670。

提示缺少cuda dll文件,下载对应文件后解决。

gpu-z和msi afterburner能不能看cuda占用显存我不知道,但这就是Nvidia CUDA SDK标准的bandwidth测试例子了。

如果你没有一块连续1.3GB显存的话可能是会比较早遇到不能分配。我可以修改一下,改成分配多块小显存。

不过你目前在out of memory之前看到的带宽都是稳定的吧?

回复 支持 反对

使用道具 举报

westlee 该用户已被删除
110#
发表于 2012-9-21 21:53 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

111#
发表于 2012-9-21 22:02 | 只看该作者
樟树 发表于 2012-9-21 21:47
gpu-z和msi afterburner能不能看cuda占用显存我不知道,但这就是Nvidia CUDA SDK标准的bandwidth测试例子 ...

还在下载,同时又仔细看了看代码。我是代码苦手,所以发现了一个疑问:
#include <cutil_inline.h>
这不是C标准头文件吧……用不用修改一下?

回复 支持 反对

使用道具 举报

112#
 楼主| 发表于 2012-9-21 22:11 | 只看该作者
westlee 发表于 2012-9-21 21:53
测试了400,128 ,800,1200,都是在169g附近。

多谢提供数据,新代码分配了多块spacer,可以试一下
命令行为:
bandwidthTest.exe --spacer0=100 --spacer1=100 --spacer2=100 --spacer3=100 --spacer4=100

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

113#
 楼主| 发表于 2012-9-21 22:13 | 只看该作者
本帖最后由 樟树 于 2012-9-21 22:14 编辑
mooncocoon 发表于 2012-9-21 22:02
还在下载,同时又仔细看了看代码。我是代码苦手,所以发现了一个疑问:
#include
这不是C标准头文件吧 ...

cutil_inline是CUDA SDK cutil库的一个头文件。
你不用管那么多了

我用的SDK是4.0,装了以后跑到..\NVIDIA GPU Computing SDK 4.0\C\src\bandwidthTest
如果sdk版本不同可能略有不同
替换同名文件编译就好

回复 支持 反对

使用道具 举报

westlee 该用户已被删除
114#
发表于 2012-9-21 22:35 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

115#
 楼主| 发表于 2012-9-21 22:37 | 只看该作者
westlee 发表于 2012-9-21 22:35
nv官网有提供已经编译好的版本,参数-help给出了具体用法。
http://developer.nvidia.com/cuda/cuda-cc-sd ...

我这个是修改版,不能照搬原来的help。

另外不要选PINNED, pinned memory能分配的很少

回复 支持 反对

使用道具 举报

116#
 楼主| 发表于 2012-9-21 22:39 | 只看该作者
本帖最后由 樟树 于 2012-9-21 22:40 编辑

已经有一些人下载了。欢迎提供数据:

对称显存的显卡上最大能分配大小,out of memory前是否出现带宽突降

非对称的550Ti和660Ti最大能分配大小,是否存在带宽突降
回复 支持 反对

使用道具 举报

westlee 该用户已被删除
117#
发表于 2012-9-21 22:44 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

118#
 楼主| 发表于 2012-9-21 22:46 | 只看该作者
westlee 发表于 2012-9-21 22:44
bandwidthtest Starting...

Running on...

这个结果倒是出人意料

是否稳定

回复 支持 反对

使用道具 举报

119#
 楼主| 发表于 2012-9-21 22:53 | 只看该作者
本帖最后由 樟树 于 2012-9-21 22:54 编辑

我在GT640 1GB 128bit GDDR5上最多分配750MB spacer,再测64MB
共计分配814MB, 未出现性能下降

Device 0: GeForce GT 640
spacer0 size: 104857600
spacer1 size: 104857600
spacer2 size: 157286400
spacer3 size: 209715200
spacer4 size: 209715200
bandwidth 54156.734375
回复 支持 反对

使用道具 举报

120#
发表于 2012-9-21 22:54 | 只看该作者
蛋痛的用96GT破卡试了一下
Device 0: GeForce 9600 GT
spacer0 size: 267386880
bandwidth 37271.261719
默认情况下:一个区块256MB,带宽37G,然后分配2个100MB的空间,带宽还是37G
而且,一个区块最大也只能是256MB(至少96GT是)
那么,如果66TI没有改变最大分配区块的情况下;每次能分配的有些空间是256MB的话
对于66TI的16bit/256MB*4的部分,无论怎样,每次访问的上限就是256MB,而16bit*4,相当于4片16bit的显存RAID0,也不可能再去访问除去256MB以上地址段的空间,何来带宽影响
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-24 14:28

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

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