This is the Linux app named UniSIMD-assembler whose latest release can be downloaded as UniSIMD-v1.1.0c.zip. It can be run online in the free hosting provider OnWorks for workstations.
Download and run online this app named UniSIMD-assembler with OnWorks for free.
Follow these instructions in order to run this app:
- 1. Downloaded this application in your PC.
- 2. Enter in our file manager https://www.onworks.net/myfiles.php?username=XXXXX with the username that you want.
- 3. Upload this application in such filemanager.
- 4. Start the OnWorks Linux online or Windows online emulator or MACOS online emulator from this website.
- 5. From the OnWorks Linux OS you have just started, goto our file manager https://www.onworks.net/myfiles.php?username=XXXXX with the username that you want.
- 6. Download the application, install it and run it.
UniSIMD-assembler
Ad
DESCRIPTION
UniSIMD assembler is a high-level C/C++ macro assembler framework unified across
ARM, MIPS, POWER and x86 architectures. It establishes a subset of both BASE and
SIMD instruction sets with clearly defined common API, so that application logic
can be written and maintained in one place without code replication.
The assembler itself isn't a separate tool, but rather a collection of C/C++
header files, which applications need to include directly in order to use.
At present, Intel SSE/SSE2/SSE4 and AVX/AVX2/AVX-512 (32/64-bit x86 ISAs),
ARMv7 NEON/NEONv2, ARMv8 AArch32 and AArch64 NEON, SVE (32/64-bit ARM ISAs),
MIPS 32/64-bit r5/r6 MSA and POWER 32/64-bit VMX/VSX (little/big-endian ISAs)
are mostly implemented (/w horizontal reductions) although scalar improvements,
wider SIMD vectors with zeroing/merging predicates in 3/4-operand instructions
are planned as extensions to current 2/3-operand SPMD-driven vertical SIMD ISA.
See README file.
Features
- ======= UniSIMD core features =======
- Unified, Universal, Portable, Compatible code
- Explicit register allocation, predictable performance
- Three register sets for code: 8, 16, 32 (free: 8, 15, 30)
- High-level SIMD registers/ops as singles, pairs and quads
- SIMD-aligned backend structures with offsets/factors
- Vector-length agnostic vertical SIMD ISA, configurable
- Simultaneous scalar + 128/256-bit + configurable SIMD ops
- ISA implementation for fp16/fp128 (half/quad) SIMD ops
- C/C++, Compute, SPMD on 4 major archs
- Intel SSE/SSE2/SSE4 and AVX/AVX2/AVX-512
- ARMv7 NEON/NEONv2, ARMv8 AArch32/AArch64 NEON, SVE
- MIPS r5/r6 MSA (Warrior P5600, I6400/P6600)
- Power VMX/VSX (PowerPC G4/G5, POWER6/7/8/9)
- CISC, RISC, CISC on RISC, little/big-endian ISA
- Support for reg-reg, load/store, load-op instructions
- Plain, indexed and scaled-indexed addressing modes
- FMA3 support (native or higher-precision emulation)
- 32/64-bit hybrid mode for native 64-bit ABI
- 32/64-bit addressing for BASE and SIMD ops
- 32/64-bit configurable SIMD elements (fp+int)
- Simultaneous 32/64-bit BASE (bridges, rules) and SIMD ops
- ISA implementation for int8/int16 (byte/half) BASE ops
- Full control over code, compiler steps out of the way
- Potential for bit-exact fp-compute across modern targets
- Used in QuadRay engine
Audience
Developers
Programming Language
C++, Assembly, C
Categories
This is an application that can also be fetched from https://sourceforge.net/projects/unisimdassembler/. It has been hosted in OnWorks in order to be run online in an easiest way from one of our free Operative Systems.