Hacker News new | past | comments | ask | show | jobs | submit login
Illustrated A64 SIMD Instruction List: SVE Instructions (dougallj.github.io)
117 points by matt_d on Oct 3, 2023 | hide | past | favorite | 14 comments



Thanks, this looks quite promising! As noted in other threads, both a version for the plain NEON instructions would be good (and the intermediate extensions, rdm, dotprod, i8mm etc), and also SVE2 instructions.

Edit: Oh, I see this does have SVE2 as well - that's great!

The ARM ARM is quite heavy to browse; for baseline NEON, I've used the "ARMv8 Instruction Set Overview" [1] which comes in a a neat 115 pages, which is great for easy browsing and finding what's available. But for anything newer than the baseline, one pretty much has to refer to the ARM ARM right now.

[1] It used to be available from ARM themselves, but I can't seem to find it these days. I've found one copy online at https://www.cs.princeton.edu/courses/archive/spr19/cos217/re... though.


https://www.corsix.org/content/whirlwind-tour-aarch64-vector... is my take on NEON, albeit not quite the same form factor as the OP.


holy shit, i’ve wanted exactly this for some time now. here’s the excellent x86 equivalent (sse through avx512): https://www.officedaytime.com/simd512e/


I hope it's useful, though I think most people care about the "Advanced SIMD" (Neon) instructions, which I'd also like to do. I started with SVE because I wasn't already familiar with it, so it was a more interesting project.

(For anyone unfamiliar, SVE is supported only on extremely recent ARM CPUs, and Apple CPUs do not yet support it, whereas AdvSIMD is available on all ARMv8-A CPUs.)


SVE is exactly what I've been interested in seeing illustrated like this :).

It's absurd to me that Arm hasn't created this themselves. officedaytime's page is such a nice thing to have for x86.


Awesome! I'm always happy to hear people are interested in SVE :)

(And yeah, creating technical documentation that a large company should have created themselves has somehow become a hobby of mine.)


Great stuff! I would definitely use the NEON version. For now I'm working on stuff that targets several flavors of intel stuff and NEON.


Very nice!

Tho it might be worth changing the title so it is clear at a glance that it is about arm64 not amd64 :-)


Heh, I'd have called it the Arm SIMD Instruction List, but Arm have been aggressively enforcing the Arm trademark [1], so I settled for A64 (the official name for the instruction set [2]).

[1] https://www.theregister.com/2023/08/31/a_star_star_domains/

[2] https://developer.arm.com/Architectures/A64%20Instruction%20...


Terrific, I'd been looking for something like this for a while. Thank you so much!


I’ve herd of A64 and SIMD before. What’s SVE? Security Vulnerabilities?


Scaleable Vector Extension. A class of SIMD instructions.


Scalable because this one can work in a vector length agnostic way. That is, you can write code that works with 128 bit vectors and also run on a machine with 512 bit vectors without recompilation.


That makes a lot of sense. Thanks for explaining!




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: