Description
Hello. I tried to build (the Debian package of) halide on AWS instances of type c7i.large and m7i.large (having 4th Generation Intel Xeon Scalable processors, codenamed Sapphire Rapids), and the following test failed:
The following tests FAILED:
345 - correctness_tiled_matmul (ILLEGAL) correctness
In summary: AWS c7i.large instances use Intel Sapphire Rapids CPUs. The CPUID instruction reports that AMX tile instructions are available. However, AWS disables AMX at the KVM hypervisor level without masking CPUID. When any AMX instruction executes, the hypervisor injects #UD (undefined instruction / SIGILL) and the test crashes.
I reported this to Debian here:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1103553
but the maintainer says the "hardware" is at fault, for declaring a capability which is not really available.
While I see his point, I also think it would be possible to do some run-time test to see if those announced capabilities really work, before performing the test which fails.
Note that in Debian it is perfectly ok to build a package in a certain machine and use the resulting .deb binary packages later on a different machine having the same architecture (amd64 in this case), so it would be a pity if those AWS machines could not be used in general to build Debian packages.
Thanks.
Reproducing case
The failing test is quoted above.
How did you get Halide?
Other (describe below)
Halide version
21.0.0
Halide commit (if known)
No response
Target
No response
Operating system
Debian unstable
Additional context
A full build log is available in the above link.
Description
Hello. I tried to build (the Debian package of) halide on AWS instances of type
c7i.largeandm7i.large(having 4th Generation Intel Xeon Scalable processors, codenamed Sapphire Rapids), and the following test failed:In summary: AWS c7i.large instances use Intel Sapphire Rapids CPUs. The CPUID instruction reports that AMX tile instructions are available. However, AWS disables AMX at the KVM hypervisor level without masking CPUID. When any AMX instruction executes, the hypervisor injects #UD (undefined instruction / SIGILL) and the test crashes.
I reported this to Debian here:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1103553
but the maintainer says the "hardware" is at fault, for declaring a capability which is not really available.
While I see his point, I also think it would be possible to do some run-time test to see if those announced capabilities really work, before performing the test which fails.
Note that in Debian it is perfectly ok to build a package in a certain machine and use the resulting .deb binary packages later on a different machine having the same architecture (amd64 in this case), so it would be a pity if those AWS machines could not be used in general to build Debian packages.
Thanks.
Reproducing case
How did you get Halide?
Other (describe below)
Halide version
21.0.0
Halide commit (if known)
No response
Target
No response
Operating system
Debian unstable
Additional context
A full build log is available in the above link.