POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

搜索
查看: 11649|回复: 68
打印 上一主题 下一主题

程序bug导致不得不配AMD处理器了,烦恼

[复制链接]
跳转到指定楼层
#
发表于 2008-9-14 10:34 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
公司的一段代码有不知名的bug,在Intel双核上跑总是出错,但是在AMD双核上或是单核上很正常。
为此老总责成我为公司配一台性能较好的AMD机器用来测试。好久不接触AMD平台了,知识匮乏中。

请问在只考虑单核效能的情况下,是Athlon 64 X 2 5200+快还是Phemon 8450快?

另外Intel的E2160,E7200等cpu可以在大多数主板上关闭双核功能么?我的另一个想法是直接上core2然后关闭双核......

老板的要求很简单,就是在程序不出错的情况下,尽可能的快,还要尽可能的省钱......大家有什么好的推荐
68#
发表于 2008-9-23 13:05 | 只看该作者
我个人十分的希望“ bcyj”能够拿出一段因为cache而让intel挂, amd不挂的代码来让我研究下......
回复 支持 反对

使用道具 举报

FANCK 该用户已被删除
67#
发表于 2008-9-23 12:34 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

66#
发表于 2008-9-23 09:18 | 只看该作者
嵌入式现在写代码都不考虑缓存了吧 程序员面对的应该是操作系统级甚至java的虚拟机级
回复 支持 反对

使用道具 举报

65#
发表于 2008-9-22 21:21 | 只看该作者
如果真的是上面这种错误的程序能在A U上跑的正常,那我以后再也不会买A了。
完全不符合逻辑的东西,在电脑世界里是不允许存在的!
回复 支持 反对

使用道具 举报

64#
发表于 2008-9-22 15:51 | 只看该作者
原帖由 沙门 于 2008-9-18 01:06 发表


正确的程序输出正确的结果,错误的程序输出错误的结果,才叫正常。

错误的程序也被CPU顺利跑下来了,而且对于这样的结果,事先无法预知,

叫正常么。


错误的程序输出不可知的结果,也是一种错误啊。偶然,错误的程序输出了正确的结果也不奇怪。

[ 本帖最后由 tedsun 于 2008-9-22 15:52 编辑 ]
回复 支持 反对

使用道具 举报

63#
发表于 2008-9-18 10:24 | 只看该作者
CACHE对程序来说应当是相当透明的, 对CACHE的使用策略只应当影响性能不应当影响结果

能在AMD上正确而Intel要完蛋的代码还真不好找

P4不支持64G以上的物理内存, 但是这对于扣肉不应当是限制吧
回复 支持 反对

使用道具 举报

62#
发表于 2008-9-18 10:13 | 只看该作者
原帖由 rx78meng 于 2008-9-15 01:15 发表
楼上几个

本楼不管怎么看,都是amd得了一小分

怎么说着说着,正常跑程序的amdu变成bug了

不同架构的cpu,有的能跑有的不能跑很正常的吧,i u不能跑的东西,别人能跑就是bug阿?

本来没有什么好研究的东西 ...


这位兄台的发言,才是大大的有问题,程序不严谨是程序员的事情,但是如果cpu把一段被判定会出错的代码执行为正确,简直就是请注意文明用词错误。

比如说如果我写的另外某个程序就在判定这个缓存里的数据做关键判断,结果amd的u不实时更新,那我岂不是很惨?

我看来,amd不光没得了一小分,应该扣一大分。把amd的team拉出去掌嘴才合适
回复 支持 反对

使用道具 举报

61#
发表于 2008-9-18 08:39 | 只看该作者
进来学习C++代码,看到指针就头晕...:wacko:
回复 支持 反对

使用道具 举报

60#
发表于 2008-9-18 07:45 | 只看该作者
原帖由 沙门 于 2008-9-18 01:06 发表


正确的程序输出正确的结果,错误的程序输出错误的结果,才叫正常。

错误的程序也被CPU顺利跑下来了,而且对于这样的结果,事先无法预知,

叫正常么。



人家已经说了,“不管怎么说,A U得了一小分”,人家又没说是否正常,但这种“得一小分”我还是觉得不要为好......
回复 支持 反对

使用道具 举报

59#
发表于 2008-9-18 01:06 | 只看该作者
原帖由 rx78meng 于 2008-9-15 01:15 发表
楼上几个

本楼不管怎么看,都是amd得了一小分

怎么说着说着,正常跑程序的amdu变成bug了

不同架构的cpu,有的能跑有的不能跑很正常的吧,i u不能跑的东西,别人能跑就是bug阿?

本来没有什么好研究的东西 ...


正确的程序输出正确的结果,错误的程序输出错误的结果,才叫正常。

错误的程序也被CPU顺利跑下来了,而且对于这样的结果,事先无法预知,

叫正常么。
回复 支持 反对

使用道具 举报

58#
发表于 2008-9-17 15:46 | 只看该作者
完全看不懂  -_-!!
回复 支持 反对

使用道具 举报

57#
发表于 2008-9-16 08:33 | 只看该作者
原帖由 coolhair 于 2008-9-15 19:20 发表


我的真没挂,因为程序太简单,另一个进程没机会改写地址。然后我在g_Byte = &bTemp;和*g_Byte = 1;两条语句间加了一句输出,用来延时,这次果然挂了。

说老实话我也不相信这程序在AMDX2上会不挂,有的同志们试 ...


帮你在AMD 4000+ Dual上试过了,程序运行出错,看来不是这个问题啊。再找找其他原因,我就说这样的程序怎么会不错
回复 支持 反对

使用道具 举报

56#
发表于 2008-9-15 19:27 | 只看该作者
等amd结果。。
回复 支持 反对

使用道具 举报

55#
 楼主| 发表于 2008-9-15 19:20 | 只看该作者
原帖由 FENG950 于 2008-9-15 16:50 发表


你的2160强悍到无语了{sweat:] 搞得我也写了一个(因为偶也有2160).......幸亏挂了。


我的真没挂,因为程序太简单,另一个进程没机会改写地址。然后我在g_Byte = &bTemp;和*g_Byte = 1;两条语句间加了一句输出,用来延时,这次果然挂了。

说老实话我也不相信这程序在AMDX2上会不挂,有的同志们试一下,强烈呼吁!来颠覆我的思想吧......AMD cache居然不自动同步......
回复 支持 反对

使用道具 举报

54#
发表于 2008-9-15 17:30 | 只看该作者
这种事情比较奇怪
回复 支持 反对

使用道具 举报

53#
发表于 2008-9-15 16:55 | 只看该作者
还在纠缠么,犯了原则性错误的程序。
有空就进修一下总比在这里发帖子强
回复 支持 反对

使用道具 举报

52#
发表于 2008-9-15 16:52 | 只看该作者
原帖由 百分百好牛 于 2008-9-15 10:26 发表


首先程序的确是有问题,是程序员的问题,没有处理同步。
但跑错误的程序,应该得到的是错误的结果,逻辑上才说得过去。
但这个地方,AMD的U跑这个错误的程序居然没有crash说明什么,说明U在设计时有些部分有问 ...


老实说我还真不信AMD就没事,哪位有X2的朋友不怕麻烦帮忙验证下。
回复 支持 反对

使用道具 举报

51#
发表于 2008-9-15 16:50 | 只看该作者
原帖由 coolhair 于 2008-9-15 14:54 发表


我还真照着这个例子写了一个程序,在我的E2160上没挂......运行得很流畅


你的2160强悍到无语了{sweat:] 搞得我也写了一个(因为偶也有2160).......幸亏挂了。
回复 支持 反对

使用道具 举报

50#
发表于 2008-9-15 16:44 | 只看该作者
完全没看懂~~~看结果~
回复 支持 反对

使用道具 举报

49#
 楼主| 发表于 2008-9-15 14:54 | 只看该作者
原帖由 bcyj 于 2008-9-14 18:38 发表
不用楼上这么特殊。。。
就这样就可以
volatile BYTE * g_Byte;
线程一:
for(;;)
{
BYTE bTemp;
g_Byte = &bTemp;
*g_Byte = 1;
}
线程二
for(;;)
{
g_Byte = NULL;
}

AMD不挂,core核心的必挂,独 ...


我还真照着这个例子写了一个程序,在我的E2160上没挂......运行得很流畅
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-4 21:14

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

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