onnxruntime
b28e927c - Read AA64ISAR0_EL1 to check dot product support (#16082)

Commit
2 years ago
Read AA64ISAR0_EL1 to check dot product support (#16082) ### Description Use an assembly instruction to read the `AA64ISAR0_EL1` register for dot product support. ### Motivation and Context The only reliable way to check for supported instruction extensions in ARM is to query the instruction set attribute registers. [Dot product instructions can be checked using bits 47:44 in the AA64ISAR0_EL1 register](https://developer.arm.com/documentation/ddi0601/2021-12/AArch64-Registers/ID-AA64ISAR0-EL1--AArch64-Instruction-Set-Attribute-Register-0?lang=en#fieldset_0-47_44). On `qemu-aarch64` with the `a64fx` cpu which does not support the dot product instructions, running a quantized BERT-Large (from MLPerf) results in `SIGILL`. With the change, the program continues without using the dot product instructions. Also verified that `S8S8_SDOT` kernels are invoked when running on hardware that supports dot product instructions. --------- Co-authored-by: Skand Hurkat <skhurkat@microsoft.com>
Author
Parents
Loading