6 ms·
Came here to say the same thing, and add that GNU Octave is pretty good too. Its libraries didn't seem as diverse as MATLAB's when I tried it, but since it's op
by zackmorris 4y ago
Came here to say the same thing, and add that GNU Octave is pretty good too. Its libraries didn't seem as diverse as MATLAB's when I tried it, but since it's open source, maybe that's changed.
Also when I tried SSE and AltiVec about 20 years ago for SIMD, they were really fast, but I was flabbergasted that the instructions were fixed-length. I wanted something more like the x86 string instructions so that I could fused-multiply-add arrays of floats without having to manually unroll loops to process 4 elements at a time:
https://docs.oracle.com/cd/E19120-01/open.solaris/817-5477/eoizn/index.html https://docs.oracle.com/cd/E19120-01/open.solaris/817-5477/e...
Looks like Arm is trying to do variable-length vectors with Scalable Vector Extension (SVE) but it's limited to 2048 bits, which is unfortunate IMHO:
https://developer.arm.com/documentation/101726/0400/Learn-about-the-Scalable-Vector-Extension--SVE-/What-is-the-Scalable-Vector-Extension- https://developer.arm.com/documentation/101726/0400/Learn-ab...
https://alastairreid.github.io/papers/sve-ieee-micro-2017.pdf https://alastairreid.github.io/papers/sve-ieee-micro-2017.pd...
https://www.youtube.com/watch?v=eGCcPo4UAHs https://www.youtube.com/watch?v=eGCcPo4UAHs