[Debian-med-packaging] Bug#946299: ITP: simde -- Implementations of SIMD instructions for all systems

Michael R. Crusoe michael.crusoe at gmail.com
Fri Dec 6 19:39:02 GMT 2019


Package: wnpp
Severity: wishlist

Subject: ITP: simde -- Implementations of SIMD instructions for all systems
Package: wnpp
Owner: Michael R. Crusoe <michael.crusoe at gmail.com>
Severity: wishlist

* Package name    : simde
  Version         : 0.0.0.git.20191205.c2e740c
  Upstream Author : , Evan Nemerson <evan at nemerson.com>
* URL             : https://github.com/nemequ/simde
* License         : MIT
  Programming Lang: C
  Description     : Implementations of SIMD instructions for all systems
 SIMDe provides fast, portable implementations of SIMD intrinsics on hardware
 which doesn't natively support them, such as calling SSE functions on ARM.
 There is no performance penalty if the hardware supports the native
 implementation (e.g., SSE/AVX runs at full speed on x86, NEON on ARM, etc.).
 .
 This makes porting code to other architectures much easier in a few key ways:
 .
 First, instead of forcing you to rewrite everything for each architecture,
 SIMDe lets you get a port up and running almost effortlessly. You can then
 start working on switching the most performance-critical sections to native
 intrinsics, improving performance gradually. SIMDe lets (for example) SSE/AVX
 and NEON code exist side-by-side, in the same implementation.
 .
 Second, SIMDe makes it easier to write code targeting ISA extensions you don't
 have convenient access to. You can run NEON code on your x86 machine without an
 emulator. Obviously you'll eventually want to test on the actual hardware
 you're targeting, but for most development, SIMDe can provide a much easier
 path.
 .
 SIMDe takes a very different approach from most other SIMD abstraction layers
 in that it aims to expose the entire functionality of the underlying
 instruction set. Instead of limiting functionality to the lowest common
 denominator, SIMDe tries to minimize the amount of effort required to port
 while still allowing you the space to optimize as needed.
 .
 The current focus is on writing complete portable implementations, though a
 large number of functions already have accelerated implementations using one
 (or more) of the following:
 .
     SIMD intrinsics from other ISA extensions (e.g., using NEON to implement
 SSE).
     Compiler-specific vector extensions and built-ins such as
 __builtin_shufflevector and __builtin_convertvector
     Compiler auto-vectorization hints, using:
        OpenMP 4 SIMD
        Cilk Plus
        GCC loop-specific pragmas
        clang pragma loop hint directives

Remark: This package is maintained by Debian Med Packaging Team at
   https://salsa.debian.org/med-team/simde



More information about the Debian-med-packaging mailing list