My event log does not list AVX as a supported instruction on my processor (Xeon) but it's running an AVX binary according to windows task manager. Is this normal?
12/2/2016 3:23:42 PM | | Processor features: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss htt tm pni ssse3 cx16 sse4_1 syscall nx lm vmx tm2 dca pbe
einstein_O1MD1G_1.00_windows_x86_64_AVX.exe
Copyright © 2024 Einstein@Home. All rights reserved.
My understanding (which could
)
My understanding (which could be wrong) is that the app will use AVX if the processor supports it but can fall back to lesser capability if the processor doesn't. So, yes, I think it's normal.
Cheers,
Gary.
Gary, the point is, the
)
Gary, the point is, the processor reports that it doesn't support it, yet it's running it.
And as Gary said if the app
)
And as Gary said if the app detects that the processor does not support AVX it will fall back to SSE2 and it will not try to use AVX instructions.
Edit: For an official statement see this post by Christian Beer.
I thought I was clear in my
)
I thought I was clear in my first post but maybe not. I will try again. The processor reports that it does not support AVX instructions yet it runs the AVX binary. So maybe I should be asking a different question? Is there a bug in the code that incorrectly reports the processor's capability? Or are you saying the the code labeled "AVX" will itself fallback to running SSE2 even though it's labeled "AVX"?
Nick_43 wrote:The processor
)
As a neutral third party, I will try to mediate. The "AVX binary" also supports non-AVX processors. So that term is just a name, but it does not mean that it actually has to run the AVX instructions in all cases.
You can call it the "Donkey binary" if you prefer, and the result is the same.
If it would attempt to run
)
If it would attempt to run AVX code on a CPU that doesn't support it, the task would immediately crash.
-----
The AVX in the filename is
)
The AVX in the filename is just a label we used to distinguish SSE2 and AVX when we had two separate applications. Once we combined SSE2 into the AVX app we kept the label (because we needn't change our workflows). So yes the App can do both SSE2 and AVX else it would fail immediately.
Thank you Christian. That
)
Thank you Christian. That explains the confusion.