游戏开发论坛

 找回密码
 立即注册
搜索
楼主: fromhell

跪求高手指导sse

[复制链接]

32

主题

377

帖子

378

积分

中级会员

Rank: 3Rank: 3

积分
378
 楼主| 发表于 2004-4-29 23:02:00 | 显示全部楼层

Re:跪求高手指导sse

那么如此看来我自己用mmx写的copy(一次copy64bit)也慢不了多少了吧.其实之所以效率不够还是因为在程序中用了sqrt函数(特低效)不知有没更好的函数代替之.

30

主题

298

帖子

299

积分

中级会员

Rank: 3Rank: 3

积分
299
QQ
发表于 2004-4-30 00:31:00 | 显示全部楼层

Re: 跪求高手指导sse

发一个我原来写好_memcpy之后用来测试的程序。分别是用memcpy,_xmm_memcpy(_memcpy原型),Qmemcpy(彭博的电子书里的函数)做的内存拷贝测试。因为源码已经被删掉了,所以一次拷贝多大块的内存我记不清楚了。
在我的拷贝代码里,因为拷贝完64K的分块后的小块拷贝代码没有写得很好,所以还落后Qmemcpy一些。但是达到940M/S是绝对可以的。
   我估计你是用prefetchxxx指令来进行预读的,我原来也用过,但是效果不好。按照Qmemcpy的代码用mov eax,[XXXXXXX]这样的写法比用prefetchxxx指令的带宽提高了30%。FAINT。还有就是未对齐写比未对齐读对带宽的影响要大得多,可能你的代码里有这些问题,所以导致内存效率很低。

sf_200443003152.exe

92 KB, 下载次数:

30

主题

298

帖子

299

积分

中级会员

Rank: 3Rank: 3

积分
299
QQ
发表于 2004-4-30 00:40:00 | 显示全部楼层

Re:跪求高手指导sse

回11楼:
     拷贝内存怎么会需要求平方根呢?如果在程序中进行大量的运算的话,会使内存效率大幅下降。比如我上面贴出来的bltcolorkey,只能达到600M/S这样的带宽。
     如果是零散的随机写的话,用movq会比用movntq的效果要好得多,如果单独使用一个movntq来写内存的话,会使得带宽降至原来的20%(在我的机器上就是如此了)。使用movntq的话,尽量的成批写入,最好是4个以上的movntq写在一起。当然前提是你的算法能有这么多空闲的寄存器来存放这些数据。

6

主题

444

帖子

457

积分

中级会员

Rank: 3Rank: 3

积分
457
发表于 2004-4-30 01:02:00 | 显示全部楼层

Re:跪求高手指导sse

movntq不但要求成批使用,而且地址也要保持相互接近,否则mem latency过高,(在我的机器上直接降到10%)
嗯,测试了一下给我的那个东西,速度在1.4G左右,总的来说还是比我的要快很多,共享一下source code如何?

30

主题

298

帖子

299

积分

中级会员

Rank: 3Rank: 3

积分
299
QQ
发表于 2004-4-30 01:05:00 | 显示全部楼层

Re:跪求高手指导sse

我很好奇在双通道的机器上能达到多快的速度?我的机器太面了。

30

主题

298

帖子

299

积分

中级会员

Rank: 3Rank: 3

积分
299
QQ
发表于 2004-4-30 01:07:00 | 显示全部楼层

Re:跪求高手指导sse

代码已经帖在上面了,如果你要完整的代码的话给我个QQ或是邮箱之类的,我给你发过去。

6

主题

444

帖子

457

积分

中级会员

Rank: 3Rank: 3

积分
457
发表于 2004-4-30 01:18:00 | 显示全部楼层

Re:跪求高手指导sse

信箱见pm

PS:我也比较好奇在Dual-Channel DDR400的i875上速度如何,能否达到2.5G?

30

主题

298

帖子

299

积分

中级会员

Rank: 3Rank: 3

积分
299
QQ
发表于 2004-4-30 01:22:00 | 显示全部楼层

Re:跪求高手指导sse

我想应该有可能。因为带宽的瓶颈就是在总线周线上,DDR400的话,更高的值也应该是有可能的。因为光是总线周线就多出了30%啊。

32

主题

377

帖子

378

积分

中级会员

Rank: 3Rank: 3

积分
378
 楼主| 发表于 2004-4-30 10:30:00 | 显示全部楼层

Re:跪求高手指导sse

我的sqrt是在写动态光照的时候用的,其实问题并不是很大,很感谢大家的帮助。没想到彭博的东西大家都有看(这家伙怎么如此厉害)。我是重庆大学计算机系的学生,经验不足,学习dx没多久。我手头上的资料不多,现在正在学习d3d并准备学opengl,我的想法是自己写一个3d引擎。不知各位有什么建议?真是很感谢!

3

主题

90

帖子

90

积分

注册会员

Rank: 2

积分
90
发表于 2004-5-1 23:25:00 | 显示全部楼层

Re:跪求高手指导sse

SSE指令编译要安装VS sp5和Process Pack 5
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-30 19:32

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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