You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add detection for Intel Advanced Matrix Extensions (AMX) instructions (#231)
Tested using intel SDE: https://www.intel.com/content/www/us/en/download/684897/intel-software-development-emulator.html
Test scripts:
```
bash scripts/local-build.sh
ISAS=()
OPTIONS=()
PLATFORMS=()
OPTIONS+=(-quark); PLATFORMS+=("Quark")
OPTIONS+=(-p4); PLATFORMS+=("Pentium4")
OPTIONS+=(-p4p); PLATFORMS+=("Pentium4 Prescott")
OPTIONS+=(-mrm); PLATFORMS+=("Merom")
OPTIONS+=(-pnr); PLATFORMS+=("Penryn")
OPTIONS+=(-nhm); PLATFORMS+=("Nehalem")
OPTIONS+=(-wsm); PLATFORMS+=("Westmere")
OPTIONS+=(-snb); PLATFORMS+=("Sandy Bridge")
OPTIONS+=(-ivb); PLATFORMS+=("Ivy Bridge")
OPTIONS+=(-hsw); PLATFORMS+=("Haswell")
OPTIONS+=(-bdw); PLATFORMS+=("Broadwell")
OPTIONS+=(-slt); PLATFORMS+=("Saltwell")
OPTIONS+=(-slm); PLATFORMS+=("Silvermont")
OPTIONS+=(-glm); PLATFORMS+=("Goldmont")
OPTIONS+=(-glp); PLATFORMS+=("Goldmont Plus")
OPTIONS+=(-tnt); PLATFORMS+=("Tremont")
OPTIONS+=(-snr); PLATFORMS+=("Snow Ridge")
OPTIONS+=(-skl); PLATFORMS+=("Skylake")
OPTIONS+=(-cnl); PLATFORMS+=("Cannon Lake")
OPTIONS+=(-icl); PLATFORMS+=("Ice Lake")
OPTIONS+=(-skx); PLATFORMS+=("Skylake server")
OPTIONS+=(-clx); PLATFORMS+=("Cascade Lake")
OPTIONS+=(-cpx); PLATFORMS+=("Cooper Lake")
OPTIONS+=(-icx); PLATFORMS+=("Ice Lake server")
OPTIONS+=(-knl); PLATFORMS+=("Knights landing")
OPTIONS+=(-knm); PLATFORMS+=("Knights mill")
OPTIONS+=(-tgl); PLATFORMS+=("Tiger Lake")
OPTIONS+=(-adl); PLATFORMS+=("Alder Lake")
OPTIONS+=(-mtl); PLATFORMS+=("Meteor Lake")
OPTIONS+=(-rpl); PLATFORMS+=("Raptor Lake")
OPTIONS+=(-spr); PLATFORMS+=("Sapphire Rapids")
OPTIONS+=(-gnr); PLATFORMS+=("Granite Rapids")
OPTIONS+=(-gnr256); PLATFORMS+=("Granite Rapids (AVX10.1 / 256VL)")
OPTIONS+=(-srf); PLATFORMS+=("Sierra Forest")
OPTIONS+=(-arl); PLATFORMS+=("Arrow Lake")
OPTIONS+=(-lnl); PLATFORMS+=("Lunar Lake")
OPTIONS+=(-future); PLATFORMS+=("Future chip")
ISAS+=("AMXBF16")
ISAS+=("AMXTILE")
ISAS+=("AMXINT8")
ISAS+=("AMXFP16")
SDE_BIN="/home/mingfeim/packages/sde-external-9.33.0-2024-01-07-lin/sde"
for I in "${!PLATFORMS[@]}"; do
echo "${PLATFORMS["${I}"]}"
for J in "${!ISAS[@]}"; do
"${SDE_BIN}" "${OPTIONS[$I]}" -- ./build/local/isa-info | grep ${ISAS[$J]}
done
done
```
Results:
```
Quark
SDE-ERROR: 64 bits applications are not supported by input chip: PENTIUM or by the input cpuid definition file
SDE-ERROR: 64 bits applications are not supported by input chip: PENTIUM or by the input cpuid definition file
SDE-ERROR: 64 bits applications are not supported by input chip: PENTIUM or by the input cpuid definition file
SDE-ERROR: 64 bits applications are not supported by input chip: PENTIUM or by the input cpuid definition file
Pentium4
SDE-ERROR: 64 bits applications are not supported by input chip: PENTIUM4 or by the input cpuid definition file
SDE-ERROR: 64 bits applications are not supported by input chip: PENTIUM4 or by the input cpuid definition file
SDE-ERROR: 64 bits applications are not supported by input chip: PENTIUM4 or by the input cpuid definition file
SDE-ERROR: 64 bits applications are not supported by input chip: PENTIUM4 or by the input cpuid definition file
Pentium4 Prescott
AMXBF16: no
AMXTILE: no
AMXINT8: no
AMXFP16: no
Merom
AMXBF16: no
AMXTILE: no
AMXINT8: no
AMXFP16: no
Penryn
AMXBF16: no
AMXTILE: no
AMXINT8: no
AMXFP16: no
Nehalem
AMXBF16: no
AMXTILE: no
AMXINT8: no
AMXFP16: no
Westmere
AMXBF16: no
AMXTILE: no
AMXINT8: no
AMXFP16: no
Sandy Bridge
AMXBF16: no
AMXTILE: no
AMXINT8: no
AMXFP16: no
Ivy Bridge
AMXBF16: no
AMXTILE: no
AMXINT8: no
AMXFP16: no
Haswell
AMXBF16: no
AMXTILE: no
AMXINT8: no
AMXFP16: no
Broadwell
AMXBF16: no
AMXTILE: no
AMXINT8: no
AMXFP16: no
Saltwell
AMXBF16: no
AMXTILE: no
AMXINT8: no
AMXFP16: no
Silvermont
AMXBF16: no
AMXTILE: no
AMXINT8: no
AMXFP16: no
Goldmont
AMXBF16: no
AMXTILE: no
AMXINT8: no
AMXFP16: no
Goldmont Plus
AMXBF16: no
AMXTILE: no
AMXINT8: no
AMXFP16: no
Tremont
AMXBF16: no
AMXTILE: no
AMXINT8: no
AMXFP16: no
Snow Ridge
AMXBF16: no
AMXTILE: no
AMXINT8: no
AMXFP16: no
Skylake
AMXBF16: no
AMXTILE: no
AMXINT8: no
AMXFP16: no
Cannon Lake
AMXBF16: no
AMXTILE: no
AMXINT8: no
AMXFP16: no
Ice Lake
AMXBF16: no
AMXTILE: no
AMXINT8: no
AMXFP16: no
Skylake server
AMXBF16: no
AMXTILE: no
AMXINT8: no
AMXFP16: no
Cascade Lake
AMXBF16: no
AMXTILE: no
AMXINT8: no
AMXFP16: no
Cooper Lake
AMXBF16: no
AMXTILE: no
AMXINT8: no
AMXFP16: no
Ice Lake server
AMXBF16: no
AMXTILE: no
AMXINT8: no
AMXFP16: no
Knights landing
AMXBF16: no
AMXTILE: no
AMXINT8: no
AMXFP16: no
Knights mill
AMXBF16: no
AMXTILE: no
AMXINT8: no
AMXFP16: no
Tiger Lake
AMXBF16: no
AMXTILE: no
AMXINT8: no
AMXFP16: no
Alder Lake
AMXBF16: no
AMXTILE: no
AMXINT8: no
AMXFP16: no
Meteor Lake
AMXBF16: no
AMXTILE: no
AMXINT8: no
AMXFP16: no
Raptor Lake
AMXBF16: no
AMXTILE: no
AMXINT8: no
AMXFP16: no
Sapphire Rapids
AMXBF16: yes
AMXTILE: yes
AMXINT8: yes
AMXFP16: no
Granite Rapids
AMXBF16: yes
AMXTILE: yes
AMXINT8: yes
AMXFP16: yes
Granite Rapids (AVX10.1 / 256VL)
AMXBF16: yes
AMXTILE: yes
AMXINT8: yes
AMXFP16: yes
Sierra Forest
AMXBF16: no
AMXTILE: no
AMXINT8: no
AMXFP16: no
Arrow Lake
AMXBF16: no
AMXTILE: no
AMXINT8: no
AMXFP16: no
Lunar Lake
AMXBF16: no
AMXTILE: no
AMXINT8: no
AMXFP16: no
Future chip
AMXBF16: yes
AMXTILE: yes
AMXINT8: yes
AMXFP16: yes
```
0 commit comments