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
LLVM seems to do this all the time, but the version of the RISC-V gcc we use (13.2) seems to be generating invalid programs sometimes, causing spike to crash.
We had to make the vl volatile here to prevent GCC from breaking this kernel.
See here:
We should figure it if this got already patched upstream and whether the workaround can be dropped. If we need to keep it, we should remove the volatile and instead add the missing vsetvli in an #if __GNUC__ >= 13...
The text was updated successfully, but these errors were encountered:
According to the RVV spec, it the job of the compiler (LLVM, GCC) to insert appropriate
vsetvli
ifvtype
changes between operations: https://github.com/riscv-non-isa/rvv-intrinsic-doc/blob/c783839de5a59480d09f1a9b69257fca4096434e/archive/rvv-intrinsic-rfc.md#sew-and-lmul-of-intrinsicsLLVM seems to do this all the time, but the version of the RISC-V gcc we use (13.2) seems to be generating invalid programs sometimes, causing spike to crash.
We had to make the
vl
volatile here to prevent GCC from breaking this kernel.See here:
muriscv-nn/Source/BasicMathFunctions/muriscv_nn_elementwise_mul_s16.c
Line 67 in b6e3d83
We should figure it if this got already patched upstream and whether the workaround can be dropped. If we need to keep it, we should remove the
volatile
and instead add the missingvsetvli
in an#if __GNUC__ >= 13
...The text was updated successfully, but these errors were encountered: