ITK5 crashes on older CPUs

Having the option of using optimized instruction set is great. Silently overriding low-level compiler defaults that reduces hardware compatibility is not nice.

Now that we know how to force compiler-default instruction sets, we’ll just do that in Slicer (by default ITK would use /arch:AVX /arch:AVX2, which is clearly not a good choice). Whenever compiler developers feel that it is time to update their defaults, we’ll automatically get upgraded to new instruction sets.

Proper solution would be to use dynamic dispatch for performance-critical parts in ITK. Libraries, such as OpenCV and Intel MKL, already do this transparently (users of these libraries don’t need to be aware of this at all).

1 Like