sb-simd
sleef
Our great sponsors
sb-simd | sleef | |
---|---|---|
11 | 17 | |
72 | 589 | |
- | - | |
8.4 | 8.1 | |
almost 2 years ago | 2 days ago | |
Common Lisp | C | |
MIT License | Boost Software License 1.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
sb-simd
-
The Usability of Advanced Type Systems: Rust as a Case Study
> fully dynamic
Well, no, it's SBCL. Common Lisp has support for types, but most compilers only use them for optimization, SBCL goes one step further and emits warnings when you mismatch types. And looking at the code, I can see lots of type declarations.
It's also interesting to note that the code does not seem to be using SBCL's new SIMD library*, so it could be sped up even more.
* <https://github.com/marcoheisig/sb-simd>, see the texinfo file for documentation.
-
Implementation comparison
I suppose that using arrays + using SIMD instructions could be even faster. Someone is already doing that: https://github.com/marcoheisig/sb-simd/blob/master/examples/simd-dot.lisp .
-
Which programming language or compiler is faster
Common Lisp (sbcl) performance via native implementation of simd [0] is very impressive ! It is litteraly acheieving C/Cpp speeds (within few ms). Great work by Marco Heisig
[0] https://github.com/marcoheisig/sb-simd
-
sb-simd vectorization speed
Here is another demonstration of how effective SIMD vectorization can be using sb-simd.
-
Quite amazing SBCL benchmark speed with sb-simd vectorization
You can see on Programming Language and Compiler Benchmark site the amazing speed of SBCL when sb-simd is used for vectorization.
-
How to speed up array writes?
For SBCL-specific, Marco and Bela have put in a ton of work at sb-simd - may be the OP finds the relevant simd interface there!
-
Programming Language and compiler Benchmarks
And sb-simd is getting very-very impressive to say the least thanks to Marco Heisig.
-
Best Lisp(s) for Functional & (seperately) Systems programming?
You can use sb-simd for manual vectorisation with SBCL. Manual vectorisation is definitely more hassle than automatic vectorisation, but often worth it.
-
Common Lisp (SBCL) slower than Python 3.9?
Fully agreed. One more library that could open up areas is also coming soon. Though documentation is still to be written. Please check sb-simd I wish I could have supported Marco even more.
- Question about Cons cell implementations
sleef
-
The Case of the Missing SIMD Code
I'm the main author of Highway, so I have some opinions :D Number of operations/platforms supported are important criteria.
A hopefully unbiased commentary:
Simde allows you to take existing nonportable intrinsics and get them to run on another platform. This is useful when you have a bunch of existing code and tight deadlines. The downside is less than optimal performance - a portable abstraction can be more efficient than forcing one platform to exactly match the semantics of another. Although a ton of effort has gone into Simde, sometimes it also resorts to autovectorization which may or may not work.
Eigen and SLEEF are mostly math-focused projects that also have a portability layer. SLEEF is designed for C and thus has type suffixes which are rather verbose, see https://github.com/shibatch/sleef/blob/master/src/libm/sleef... But it offers a complete (more so than Highway's) libm.
-
Does anyone have any interest in my deep-learning framework?
But the other part about SIMD: I'm unsure if mgl-mat uses SIMD for transcendental functions or even for something like element-wise multiplication and division*. SIMD easily provides a speed-boost of 4-8 times which numpy uses. Libraries like sleef have been put to use by many.
- `constexpr` what?
- Advice on porting glibc trig functions to SIMD
-
SIMD intrinsics and the possibility of a standard library solution
Highway and Agner's VectorClass also have math functions. And SLEEF should definitely be mentioned.
-
Portable SIMD library
"SIMD Library for Evaluating Elementary Functions, vectorized libm and DFT" - https://github.com/shibatch/sleef
- SIMD Library for Evaluating Elementary Functions, Vectorized Libm and DFT
-
C library for multiple-precision floating-point arithmetic with correct rounding
Not mentioned in the list of users is SLEEF (https://github.com/shibatch/sleef), which provides fast approximations for various elementary functions. (It generates coefficients for the approximations with mpfr)
SLEEF itself is used by PyTorch.
-
How to speed up array writes?
If you are looking at floats, there's https://sleef.org
-
Benchmarking sine approximations and interpolators.
It would be interesting to see SLEEF added in the benchmarks.
What are some alternatives?
sbcl - Mirror of Steel Bank Common Lisp (SBCL)'s official repository
nsimd - Agenium Scale vectorization library for CPUs and GPUs
PrimesResult - The results of the Dave Plummer's Primes Drag Race
yenten-arm-miner-yespowerr16 - ARM 64 CPU miner for Yespower variant algorithms
kandria - A post-apocalyptic actionRPG. Now on Steam!
vector-libm
Programming-Language-Benchmarks - Yet another implementation of computer language benchmarks game
crlibm - A mirror of the CRLibm project from INRIA Forge
Carp - A statically typed lisp, without a GC, for real-time applications.
xbyak_aarch64
doom-emacs - An Emacs framework for the stubborn martian hacker [Moved to: https://github.com/doomemacs/doomemacs]
rlibm-32 - RLibm for 32-bit representations (float and posit32)