Skip to content

SIMD/SLEEF optimizations cause crashes for old hardware #628

@bhaller

Description

@bhaller

@andrewkern we weren't expecting this to come up, but here it is. :-> From https://groups.google.com/g/slim-discuss/c/S4DF_5vh-KE/m/X-NJPf7CAAAJ:

I have been running sims on a distributed cluster and have noticed crashes on jobs that were specifically sent to clusters with older hardware. Of those, most exit with some kind of opaque SIGILL error. I didn't notice this with v5.0 (haven't tried v5.1). My hypothesis is that the updated vector operations are not compatible with x86_64-v2 hardware. Those 2012 cpus are pretty old now, but there are still plenty of HPCs that still have them in use! I was just wondering if this is a known thing on your end or if there is something I could fix on my end. Either way I was hoping I could get some clarity on hardware requirements from you if possible.

For now, users on hardware this old can build SLiM themselves with -D USE_SIMD=OFF in their cmake build command, IIRC. But given that this has actually bitten a user, I guess it'd be good to get a solution to this that doesn't require the user to set build flags manually. How difficult is that to detect at compile time? There must be a way to do this within CMake...

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions