Repository navigation
Pick matching SVE fallback kernel in ARM64 DYNAMIC_ARCH by vector length - #6130
martin-frbg wants to merge 8 commits into
Conversation
| return &gotoblas_ARMV8SVE; | ||
| break; | ||
| case 8: | ||
| return &gotoblas_NEOVERSEV1; |
There was a problem hiding this comment.
Note that KERNEL.NEOVERSEV1 includes KERNEL.ARMV8SVE
There was a problem hiding this comment.
It does, but V1 has the GEMM_UNROLL_MN set appropriately, which should take care of the L3 packing issues
|
One units mismatch in the Linux fallback at if (veclen > -1) veclen = (veclen & PR_SVE_VL_LEN_MASK) / 4;I checked the extracted branch with mocked 16/32/64-byte responses; the conversion restores the intended selections. This is a dispatch check, not a native numerical test. Linux ABI reference. |
Thanks - I was just trying things on the side without local testing. Will update the PR accordingly... |
|
Thanks — tested Attached is a small default-case patch: retain A64FX at VL512 and use ARMV8 for unmatched lengths. With it, a 768-call SSYRK/SSYR2K sweep and both reduced #6102 DOT checks pass at VL128/256/384/512/640/1024/2048. The three explicit SVE selections are unchanged and also pass those checks before the patch. Patch, reproducer, commands, and logs attached. QEMU only; native hardware was not tested. |
|
Ahh, I misread your SSYRK issue and somehow hoped A64FX would work for the 384 case too. Dropping down to pure NEON kernels will probably not be much of a practical issue as long as there is no actual hardware with such VLs. |
for #6102 and related issues