PS.
https://docs.microsoft.com/en-us/cpp/intrinsics/cpuid-cpuidex?view=vs-2019
has a nice CPUID example

On Fri, Sep 18, 2020 at 12:24 AM Edward Lam <[email protected]> wrote:

> Offhand, I wonder if you could put main() in its own source file and
> compile it without any vectorization compiler options, and have that call
> your real main() renamed in a different source file that does have
> vectorization compiler options enabled. Then your new main() could do CPUID
> checks (eg. https://stackoverflow.com/a/4823889 ) and bail out
> gracefully. You will of course need to ensure that the CPUID checks are
> accurate for your compiler options, which may present its own challenges.
>
> Cheers,
> -Edward
>
> On Thu, Sep 17, 2020 at 10:52 PM Rob McDonald <[email protected]>
> wrote:
>
>> I maintain an open source program that uses Eigen.  The vast majority of
>> my users do not compile the program, instead downloading a pre-compiled
>> binary from our website.  About 80% are on Windows, 10% on Mac and 10% on
>> Linux.  I only provide X86 builds, 32 and 64-bit on Windows, 64-bit only on
>> Mac and Linux.  We may eliminate the 32-bit Windows build soon.
>>
>> Historically, I have compiled with no special flags enabling
>> vectorization options for the CPU.  I would like to pursue this as I expect
>> it will unlock some nice performance gains.  However, I'd like to keep
>> things simple and compatible for users.
>>
>> What happens when someone runs a program compiled with vectorization when
>> their CPU does not support it?  If it fails, how graceful is the failure?
>>
>> Is there a standard approach to identify the capabilities of a given
>> machine?  I could add that to my program and survey users before making a
>> change...  Would such code still run on a machine that was in the process
>> of failing due to not having support for the built in vectorization?  I.e.
>> if it is crashing, can we send a message as to why we're going down?
>>
>> Is there a graceful way to support multiple options?
>>
>> Any tips from other broad use applications is greatly appreciated.
>>
>> Rob
>>
>>
>>

Reply via email to