Top 10 C powerpc Projects
-
Unicorn Engine
Unicorn CPU emulator framework (ARM, AArch64, M68K, Mips, Sparc, PowerPC, RiscV, S390x, TriCore, X86)
-
capstone
Capstone disassembly/disassembler framework for ARM, ARM64 (ARMv8), BPF, Ethereum VM, M68K, M680X, Mips, MOS65XX, PPC, RISC-V(rv32G/rv64G), SH, Sparc, SystemZ, TMS320C64X, TriCore, Webassembly, XCore and X86.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
SHA-Intrinsics
SHA-1, SHA-256 and SHA-512 compression functions using Intel, ARMv8 and Power8 SHA intrinsics
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
camellia-simd-aesni
Camellia cipher SIMD vector implementations for x86 (with AES-NI, VAES and/or GFNI instructions), ARM (with ARMv8 Crypto Extension instructions) and POWER (with VMX+VSX+crypto instructions)
Project mention: Unicorn: Lightweight multi-platform, multi-architecture CPU emulator framework | news.ycombinator.com | 2023-11-19
Project mention: Rise: Accelerate the Development of Open Source Software for RISC-V | news.ycombinator.com | 2023-05-31Maybe then they can help us with the Capstone[1][2] disassembly engine auto-sync (automatic synchronization from the LLVM TableGen files) effort[3]. ARMv7, ARMv8/9, PowerPC are nearly finished, and MIPS in in near-term plans. Nobody stepped in for RISC-V yet.
[1] http://www.capstone-engine.org/
I was curious about these libraries a few weeks ago and did some searching. Is there one that's got a clearly dominating set of users or contributors?
I don't know what a good way to compare these might be, other than perhaps activity/contributor count.
[1] https://github.com/simd-everywhere/simde
[2] https://github.com/ermig1979/Simd
[3] https://github.com/google/highway
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.
Project mention: Linux 6.5 Last Minute Fixes a Performance Regression, 34% Drop in a Benchmark | news.ycombinator.com | 2023-08-28> camellia_aesni_avx_x86_64
An interesting point here is that AES-NI can be used to accelerate a host of things other than AES. In this case, it's because the S-box can take advantage of the AES S-Box (SubBytes) instruction: https://github.com/jkivilin/camellia-simd-aesni; https://kernel.googlesource.com/pub/scm/linux/kernel/git/sha....
Similar acceleration has been done with SM4, the Chinese analogue of AES. https://github.com/mjosaarinen/sm4ni
C powerpc related posts
Index
What are some of the best open-source powerpc projects in C? This list will help you:
Project | Stars | |
---|---|---|
1 | Unicorn Engine | 7,126 |
2 | capstone | 7,015 |
3 | simde | 2,157 |
4 | sleef | 583 |
5 | Supermodel | 217 |
6 | SHA-Intrinsics | 185 |
7 | skiboot | 98 |
8 | OpenPicoRTOS | 39 |
9 | wii-gc-adapter-inject | 36 |
10 | camellia-simd-aesni | 13 |