登录论坛

查看完整版本 : [求助] INTEL行 AMD为什么不行!


isomia
2008-04-22, 21:48
MATLAB 错误信息如下:

Segmentation violation detected at Tue Apr 22 21:39:38 2008
------------------------------------------------------------------------

Configuration:
MATLAB Version: 7.0.0.19920 (R14)
Operating System: Microsoft Windows XP
Window System: Version 5.1 (Build 2600: Service Pack 2)
Processor ID: x86 Family 15 Model 12 Stepping 2, AuthenticAMD
Virtual Machine: Java 1.4.2 with Sun Microsystems Inc. Java HotSpot(TM) Client VM
(mixed mode)
Default Charset: ibm-1386_P100-2002

Register State:
EAX = 00000000 EBX = 00000008
ECX = 004f4a0c EDX = 5fe30030
ESI = 01790800 EDI = 601ee000
EBP = 00cdc4e4 ESP = 00cdc4dc
EIP = 78730ac4 FLG = 00010246

Stack Trace:
[0] libut.dll:_mw_calloc(3088640, 8, 0x380edc90, 0x00cdc514 "d磐") + 36 bytes
[1] libut.dll:_utCalloc(3088640, 8, 0x380ed890, 0x380edc90) + 37 bytes
[2] libmx.dll:_mxCalloc(3088640, 8, 0x0145e380, 0xffffffff) + 19 bytes
[3] numerics.dll:void __cdecl mfFFTNFcn(int,struct mxArray_tag * * const,int,struct mxArray_tag * * const,int)(0x00cdc80c, 0x00cdc86c, 0xffffffff, 0x00cdc598 "嘏�) + 771 bytes
[4] numerics.dll:void __cdecl mfFullFFTNFcn(int,struct mxArray_tag * * const,int,struct mxArray_tag * * const)(1, 0x00cdc80c, 1, 0x00cdc86c) + 24 bytes
[5] m_dispatcher.dll:public: virtual void __thiscall Mfh_builtin<struct mxArray_tag>::dispatch_mf(int,struct mxArray_tag * *,int,struct mxArray_tag * *)(1, 0x00cdc80c, 1, 0x00cdc86c) + 55 bytes
[6] m_dispatcher.dll:public: virtual void __thiscall Mfh_MATLAB_fn::dispatch_fh(int,struct mxArray_tag * *,int,struct mxArray_tag * *)(1, 0x00cdc80c, 1, 0x00cdc86c) + 200 bytes
[7] m_interpreter.dll:_inDispatchFromStack(346, 0x013f6e24 "fftn", 1, 1) + 891 bytes
[8] m_interpreter.dll:enum opcodes __cdecl inDispatchCall(char const *,int,int,int,int *,int *)(0x013f6e24 "fftn", 346, 1, 1) + 111 bytes
[9] m_interpreter.dll:int __cdecl inInterp(enum inDebugCheck,int,int,enum opcodes,struct inPcodeNest_tag volatile *)(1, 193, 19, 0) + 2282 bytes
[10] m_interpreter.dll:int __cdecl inInterPcodeSJ(enum inDebugCheck,int,int,enum opcodes,struct inPcodeNest_tag *)(1, 193, 19, 0) + 272 bytes
[11] m_interpreter.dll:int __cdecl inExecuteMFunctionOrScript(class Mfh_mp *,bool)(0x01676280, 0, 1, 3) + 773 bytes
[12] m_interpreter.dll:_inWordsj(1, 0x00cdd460, 1, 0x00cdd4f0) + 441 bytes
[13] m_interpreter.dll:public: void __thiscall Mfh_mp::inRunMP(int,struct mxArray_tag * *,int,struct mxArray_tag * *,struct inWorkSpace_tag *)(1, 0x00cdd460, 1, 0x00cdd4f0) + 158 bytes
[14] m_interpreter.dll:public: virtual void __thiscall Mfh_mp::dispatch_file(struct _mdUnknown_workspace *,int,struct mxArray_tag * *,int,struct mxArray_tag * *)(0, 1, 0x00cdd460, 1) + 28 bytes
[15] m_interpreter.dll:public: virtual void __thiscall Mfh_mp::dispatch_file(int,struct mxArray_tag * *,int,struct mxArray_tag * *)(1, 0x00cdd460, 1, 0x00cdd4f0) + 26 bytes
[16] m_dispatcher.dll:public: virtual void __thiscall Mfh_file::dispatch_fh(int,struct mxArray_tag * *,int,struct mxArray_tag * *)(1, 0x00cdd460, 1, 0x00cdd4f0) + 273 bytes
[17] m_interpreter.dll:public: void __thiscall ResolverFunctionDesc::CallFunction(int,struct mxArray_tag * * const,int,struct mxArray_tag * * const)(1, 0x00cdd460, 1, 0x00cdd4f0) + 246 bytes
[18] m_interpreter.dll:public: bool __thiscall Resolver::CallMFunction(int,int,class _m_operand * const,union m_operand_storage *,int,class _m_operand * const,union m_operand_storage *,int *)(1, 1, 0x380ed5d0, 0) + 840 bytes
[19] m_interpreter.dll:bool __cdecl inResolveMFunctionCall(struct _m_function_desc *,int,int,class _m_operand * const,union m_operand_storage *,int,class _m_operand * const,union m_operand_storage *,int *,enum inMarshalType *,unsigned int,int,unsigned int *,int)(0x38263490, 1, 1, 0x380ed5d0) + 148 bytes
[20] m_interpreter.dll:bool __cdecl accelMFunctionCall(struct _accelOp *,struct _accelOp * *,struct _accelBytecode *,int *,enum inMarshalType *)(0x382ddec0, 0x00cddb04, 0x38313490 "擂-86", 0x00cddafc) + 108 bytes
[21] m_interpreter.dll:int __cdecl accelExec(struct _accelBytecode *,enum inMarshalType *)(0x38313490 "擂-86", 0x00cddb7c, 0, 50) + 18462 bytes
[22] m_interpreter.dll:_inExecuteHotSegment(0x00cddbb0, 0x00cddc0c, 0x00cddbfc, 0x00cde09c) + 1542 bytes
[23] m_interpreter.dll:int __cdecl inExecuteMFunctionOrScript(class Mfh_mp *,bool)(0x383ca340, 0, 7, 7) + 610 bytes
[24] m_interpreter.dll:_inWordsj(5, 0x00cde03c, 7, 0x00cde09c) + 441 bytes
[25] m_interpreter.dll:public: void __thiscall Mfh_mp::inRunMP(int,struct mxArray_tag * *,int,struct mxArray_tag * *,struct inWorkSpace_tag *)(5, 0x00cde03c, 7, 0x00cde09c) + 158 bytes
[26] m_interpreter.dll:public: virtual void __thiscall Mfh_mp::dispatch_file(struct _mdUnknown_workspace *,int,struct mxArray_tag * *,int,struct mxArray_tag * *)(0, 5, 0x00cde03c, 7) + 28 bytes
[27] m_interpreter.dll:public: virtual void __thiscall Mfh_mp::dispatch_file(int,struct mxArray_tag * *,int,struct mxArray_tag * *)(5, 0x00cde03c, 7, 0x00cde09c) + 26 bytes
[28] m_dispatcher.dll:public: virtual void __thiscall Mfh_file::dispatch_fh(int,struct mxArray_tag * *,int,struct mxArray_tag * *)(5, 0x00cde03c, 7, 0x00cde09c) + 273 bytes
[29] m_interpreter.dll:_inDispatchFromStack(766, 0x0fca0b00 "fresnel_convolution", 5, 7) + 891 bytes
[30] m_interpreter.dll:_inCallFcnFromReference(0, 0x384a33c0, 0x789b59c0, 0xcccccccd) + 176 bytes
[31] m_interpreter.dll:int __cdecl inInterp(enum inDebugCheck,int,int,enum opcodes,struct inPcodeNest_tag volatile *)(1, 0, 52, 0) + 4115 bytes
[32] m_interpreter.dll:int __cdecl inInterPcodeSJ(enum inDebugCheck,int,int,enum opcodes,struct inPcodeNest_tag *)(1, 0, 2, 0) + 272 bytes
[33] m_interpreter.dll:int __cdecl inExecuteMFunctionOrScript(class Mfh_mp *,bool)(0x383b4780, 1, 0, 0x383b4780) + 773 bytes
[34] m_interpreter.dll:_inExecCompScript(0, 0x00cde71c, 0x383b4780, 0xffffffff) + 321 bytes
[35] m_interpreter.dll:public: void __thiscall Mfh_mp::inRunMP(int,struct mxArray_tag * *,int,struct mxArray_tag * *,struct inWorkSpace_tag *)(0, 0x00cde71c, 0, 0x00cde77c) + 122 bytes
[36] m_interpreter.dll:public: virtual void __thiscall Mfh_mp::dispatch_file(struct _mdUnknown_workspace *,int,struct mxArray_tag * *,int,struct mxArray_tag * *)(0, 0, 0x00cde71c, 0) + 28 bytes
[37] m_interpreter.dll:public: virtual void __thiscall Mfh_mp::dispatch_file(int,struct mxArray_tag * *,int,struct mxArray_tag * *)(0, 0x00cde71c, 0, 0x00cde77c) + 26 bytes
[38] m_dispatcher.dll:public: virtual void __thiscall Mfh_file::dispatch_fh(int,struct mxArray_tag * *,int,struct mxArray_tag * *)(0, 0x00cde71c, 0, 0x00cde77c) + 273 bytes
[39] m_interpreter.dll:_inDispatchFromStack(765, 0x013f9b14 "test_home", 0, 0) + 891 bytes
[40] m_interpreter.dll:enum opcodes __cdecl inDispatchCall(char const *,int,int,int,int *,int *)(0x013f9b14 "test_home", 765, 0, 0) + 111 bytes
[41] m_interpreter.dll:int __cdecl inInterp(enum inDebugCheck,int,int,enum opcodes,struct inPcodeNest_tag volatile *)(2, 0, 0, 0) + 2411 bytes
[42] m_interpreter.dll:int __cdecl inInterPcodeSJ(enum inDebugCheck,int,int,enum opcodes,struct inPcodeNest_tag *)(2, 0, 0, 0) + 272 bytes
[43] m_interpreter.dll:_inInterPcode(2, 0x7876f2d8, 0, 0) + 69 bytes
[44] m_interpreter.dll:enum inExecutionStatus __cdecl in_local_call_eval_function(int *,struct _pcodeheader *,int *,struct mxArray_tag * * const,enum inDebugCheck)(0x00cdf2c8, 0x00cdf3bc, 2, 0x0fe604a0 "test_home\n") + 162 bytes
[45] m_interpreter.dll:$L72592(0x7876f2d8, 0x0fe604a0 "test_home\n", 10, 0) + 196 bytes
[46] m_interpreter.dll:enum inExecutionStatus __cdecl inEvalCmdWithLocalReturnandtype(char const *,int *,enum inDebugCheck)(0, 2, 1, 0x00cdf44c "趑�) + 86 bytes
[47] m_interpreter.dll:_inEvalCmdNoEnd(0x0fe604a0 "test_home\n", 0x00cdf4e4, 0x00cdf4a0, 0x015c1ea0) + 16 bytes
[48] bridge.dll:_mnParser(0x7c80b6a1, 0x015c1ea0, 0, 0) + 431 bytes
[49] mcr.dll:public: void __thiscall mcrInstance::mnParser(void)(271238, 0x6d5c3a44, 0x616c7461, 0x69625c62) + 87 bytes
[50] MATLAB.exe:0x00401d2f(4194304, 0, 271238, 0x015c1ea0)
[51] MATLAB.exe:0x00403e45(0x43010000, 0, 0x7ffd8000, 0x80544ffd)
[52] kernel32.dll:0x7c816fd7(0x00403cc0 "jth(U@", 0, 0, 0)

Please follow these steps in reporting this problem to The MathWorks so
that we have the best chance of correcting it:

1. Send this crash report to [email protected] for automated analysis.
For your convenience, this information has been recorded in:
C:\DOCUME~1\isomia\LOCALS~1\Temp\matlab_crash_dump.2852

2. Also, if the problem is reproducible, send the crash report to
[email protected] along with:
- A specific list of steps that will reproduce the problem
- Any M, MEX, MDL or other files required to reproduce the problem
- Any error messages displayed to the command window
A technical support engineer will contact you with further information.

Thank you for your assistance. Please save your workspace and restart
MATLAB before continuing your work.

Error in ==> fft2 at 19
f = fftn(x);

Error in ==> fresnel_convolution at 9


Error in ==> test_home at 52
[f1,dx1,dy1,x1,y1] = fresnel_convolution(fh,M,N,dhx,dhy,zz,lambda);

同样的程序INTEL的处理器就可以运行,但是AMD的就不行,是不是和处理器架构有关系啊?
请问有什么解决方法伐?

shenglwan
2008-04-22, 22:10
试了几台机子?一般来说与硬件无关的

未注册
2008-04-22, 22:40
试了几台机子?一般来说与硬件无关的
试了三台,两台INTEL可以运行,AMD不能运行.

isomia
2008-04-22, 22:42
试了几台机子?一般来说与硬件无关的

试了三台,两台INTEL能运行,AMD不能运行.

dnping
2008-04-23, 08:31
可能是和你的系统以及一些平台有关,比如java平台,一般和处理器是没有关系的,因为matlab并不是底层语言,它是基于C的,所以再试试看……

isomia
2008-04-23, 12:23
问题已经解决,还是因为BLAS.SPEC里面没有AMD 64位K8 CPU的信息。打开BLAS。SPEC 在最后加上
AuthenticAMD Family 15 Model 12 atlas_Athlon.dll # Athlon 64 (Newcastle)

AuthenticAMD Family 15 Model * atlas_Athlon.dll # AMD64
这两行就行了。