Access violation calling vmlGetMode on AMD CPU

Access violation calling vmlGetMode on AMD CPU

We are building a custom dll using the builder tool and calling it via P/Invoke from a .NET app.

When calling vmlGetMode() on an Athlon64 (running on 32-bit XP) we are getting a Access Violation exception. This error does not occur on Intel CPUs.

We have tried:

- setting OMP_NUM_THREADS to 1

- changing the calling convention to stdcall

- linking mkl_sequential instead of mkl_intel_thread

but none of these seemed to help.

3 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Could you give more information about your problem?

1) which version of MKL was used?

2) short example which illustrate the problem would be very appreciable.

Andrey

We are now building the custom DLL with 10.0.2.019, but it is still not working.

It seems that we have an intermittent problem which may not be restricted to Athlon64. After some amount of research, I feel that the cause of our problems may be some incorrect/missing initialization of TLS... but I am also under the impression that building with the custom DLL build tool should produce the correct TLS initialization section?

Here are a couple of combinations that are not working for us (all with MKL 10.0.2.019):

Dual Xeon E5405 Quadcore, Windows Server 2003 Standard x64 SP2, 32-bit .NET application calling ia32 custom DLL linked with mkl_sequential via P/Invoke

Athlon64 X2 Dual, Windows XP Home, 32-bit .NET application calling ia32 custom DLL linked with mkl_sequential via P/Invoke

Surprisingly, we have several Xeons running Windows x64 where the custom DLL does work. And so far, no problems on 32-bit CPUs.

Any ideas?

Leave a Comment

Please sign in to add a comment. Not a member? Join today