Open bingfengfeifei opened 3 months ago
Hi @bingfengfeifei - what is the actual CPU type by the way? Since 1.5, we use atomic operations, but AFAIK, those are mandatory on Armv8.1
https://en.wikichip.org/wiki/arm/armv8.1
When I do lscpu
on my Macbook, I see an atomics
flag which yours is missing so I wonder if it is actually Armv8.1. I don't think we can support older than it since we need atomics for memory usage optimization (1.4 will consume much more memory), and it's a very old architecture by now.
Architecture: aarch64
CPU op-mode(s): 64-bit
Byte Order: Little Endian
CPU(s): 10
On-line CPU(s) list: 0-9
Vendor ID: Apple
Model name: -
Model: 0
Thread(s) per core: 1
Core(s) per cluster: 10
Socket(s): -
Cluster(s): 1
Stepping: 0x0
BogoMIPS: 48.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 asimddp sha512 asimdfhm dit uscat ilrc
pc flagm ssbs sb paca pacg dcpodp flagm2 frint
Hi @anuraaga - Thank you for the reply. This CPU may not be a true ArmV8.1, it may be ArmV8. The CPU model is Phytium D2000.
Thanks for confirming. Searching around, indeed it seems to be armv8. While there are techniques for emulating atomics on it, wazero is a small community and I don't know if we could support less common cpus. We could file an issue in wazero repo if you want to try but I think the chance is low.
A workaround for you could be to use the cgo backend with the build tag if you compile re2 (https://github.com/google/re2) for that CPU. Is it something possible?
In version 1.4.0, the demo code runs successfully, but starting from version 1.5.0, the demo code panics with an instruction set error. demo code:
error log:
lscpu