| ▲ | camel-cdr 4 hours ago | ||||||||||||||||
> Dart supports RISC-V as a target architecture for compilation, but I'm not really excited about figuring out how to map the wasm-SIMD-style primitives to RISC-V's RVV and so I don't really plan to look into it at all. On the one hand, this will be quite straight forward, but on the other hand quite disappointing. Afaik Dart has a 128-bit only SIMD abstraction (so not performance portable by default). Since the base "V" extension mandates a mininum vector length of 128-bit, you can trivially make codegen work for all vector length, by simply setting vl to 128/elementwidth. But as with x86, if your native hardware vector length is larger than 128-bit, you leave performance on the table. > This is mostly because their approach to SIMD is so different, but also because I can't test it at all. Are there any RISC-V "machines"? I'd recommend using qemu for initial testing. Hardware wise, the cheapest option is the orange pi rv2, which has 8 SpacemiT X60 cores, which are in-order and support 256-bit RVV. The Zhihe A210 is also interesting, but way to expensive for what it is. If you have a higher budget, I'd recommend the SpacemiT K3, which is the fist RISC-V SBC with RVA23 support. It is has 8 SpacemiT X100 4-wide out-of-order cores, with 256-bit RVV. | |||||||||||||||||
| ▲ | seastarer 2 hours ago | parent [-] | ||||||||||||||||
You can try to re-vectorize the code for larger vector size. | |||||||||||||||||
| |||||||||||||||||