找回密码
 欢迎注册
楼主: litaoye

[求助] 关于一个运算优化的问题

[复制链接]
发表于 2009-3-23 16:59:22 | 显示全部楼层
我的那个 logSum函数中的汇编代码正好100行(不包括空行,标号)。本来可以写的更短些,但那样速度就会下降,所以还是保留现在的样子。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-3-23 17:33:39 | 显示全部楼层
俺的目前是73行 在优化SSE代码兼调试中 通篇代码仅一个两重循环,最内循环一个跳转
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-3-23 17:36:21 | 显示全部楼层
游客,本帖隐藏的内容需要积分高于 10 才可浏览,您当前积分为 0
好像是可以工作了,但提交后,提示崩溃 有点怀疑其机器不支持某些指令
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-3-23 20:25:52 | 显示全部楼层
#include #include int add(int a, int b) { __asm { movd xmm0, a movd xmm1, b paddq xmm0, xmm1 psrldq xmm1, 4 pshufd xmm1, xmm0, 11100100b movd eax, xmm0 } } int main(void) { int a, b; scanf("%u %u", &a, &b); printf("%u\n", add(a, b)); return 0; } 做了个测试,似乎其机器支持SSE
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-3-24 22:04:06 | 显示全部楼层
放开173#的积分限制 另外,宝宝能对173#和你的代码的执行时间做测试么? 顺便,我想知道为什么提交后崩溃
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2009-3-24 22:21:44 | 显示全部楼层
过两天我也写个c++的,看看能比c#快多少!好久没用过c了!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-3-24 22:34:50 | 显示全部楼层
C#前景有点模糊啊
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2009-3-24 22:48:28 | 显示全部楼层
原帖由 无心人 于 2009-3-24 22:34 发表 C#前景有点模糊啊
呵呵,我自己的前景比它还模糊! 正在看几位的代码,看有什么可以抄袭的!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-3-25 08:22:46 | 显示全部楼层
呵呵, 我的代码要预先熟悉x86指令 写这个SSE指令很困难 稍微一不小心就出错 这个宝宝和锅老大是专家
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2009-3-27 04:02:02 | 显示全部楼层
呵呵,盗用了宝宝的代码!确实很厉害! 不知道有没有搜索某1位以后第一个1的?比如32位的,搜索8位以后的? 目前我用的方法是同某个数&一下,比如8位就是和0x00FFFFFF &一下,然后还是调用这个。 inline int _log2(unsigned int r) { __asm { bsr eax,r } }
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-11-18 15:51 , Processed in 0.032563 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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