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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions