sleef
sleef copied to clipboard
dft test gets stuck during initialisation when hardware vector length is very long
If measure()
fails here:
https://github.com/shibatch/sleef/blob/ecb89367eb943287d0b82655379ea3344ec2a871/src/dft/dft.c#L1041
then the init function falls into this loop, but makes no progress (N
is always zero so length
never decreases):
https://github.com/shibatch/sleef/blob/ecb89367eb943287d0b82655379ea3344ec2a871/src/dft/dft.c#L1222-L1233
AFAICT it's measure()
which is responsible for filling in p->bestPath
, so if it fails I'm not sure what is meant to happen here.
I get it failing when I set qemu to emulate hardware with 1024-bit vector length on RISCV when running naivetestsp 10
, but that code is not merged. Maybe it can also be reproducible with qemu and SVE.
I'm not sure why the earlier functions fail when the hardware is unusually wide, but since there's a code path that does something when they do I suppose it's a thing that's expected to happen.
Hello! Thanks for reporting. However, DFT is not officially supported yet for Risc-V. It is currently work in progress (#496) and it certainly isn't tested yet. @luhenry is currently looking into #496
Yeah, I'm doing that RISCV stuff now. The trouble is that when I test with a 1024-bit wide vector register the code I linked to stops making sense.