The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning. Learn more →
Top 23 C++ Arm Projects
-
simdjson
Parsing gigabytes of JSON per second : used by Facebook/Meta Velox, the Node.js runtime, ClickHouse, WatermelonDB, Apache Doris, Milvus, StarRocks
Project mention: 1BRC Merykitty's Magic SWAR: 8 Lines of Code Explained in 3k Words | news.ycombinator.com | 2024-03-09 -
libfacedetection
An open source library for face detection in images. The face detection speed can reach 1000FPS.
-
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.
-
Project mention: Does anyone else agree that the links to the latest development version of Open3D don't work? | /r/cscareerquestions | 2023-07-10
I was going to file a bug about another issue, but I have to download the development version. This is why I want this solved quickly. None of the links seem to work: https://github.com/isl-org/Open3D/issues/6259
-
MNN
MNN is a blazing fast, lightweight deep learning framework, battle-tested by business-critical use cases in Alibaba
Project mention: [D][R] Deploying deep models on memory constrained devices | /r/MachineLearning | 2023-10-03However, I am looking on this subject through the problem of training/finetuning deep models on the edge devices, being increasingly available thing to do. Looking at tflite, alibaba's MNN, mit-han-lab's tinyengine etc..
-
keystone
Keystone assembler framework: Core (Arm, Arm64, Hexagon, Mips, PowerPC, Sparc, SystemZ & X86) + bindings (by keystone-engine)
Sorry for the late answer. Yes, there is. We hoped a Keystone-based[1] plugin would be a better alternative since it's based on the LLVM code, but the project looks abandoned now[2].
-
Simd
C++ image processing and machine learning library with using of SIMD: SSE, AVX, AVX-512, AMX for x86/x64, VMX(Altivec) and VSX(Power7) for PowerPC, NEON for ARM. (by ermig1979)
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
-
StringZilla
Up to 10x faster strings for C, C++, Python, Rust, and Swift, leveraging SWAR and SIMD on Arm Neon and x86 AVX2 & AVX-512-capable chips to accelerate search, sort, edit distances, alignment scores, etc 🦖
Project mention: Measuring energy usage: regular code vs. SIMD code | news.ycombinator.com | 2024-02-19The 3.5x energy-efficiency gap between serial and SIMD code becomes even larger when
A. you do byte-level processing instead of float words;
B. you use embedded, IoT, and other low-energy devices.
A few years ago I've compared Nvidia Jetson Xavier (long before the Orin release), Intel-based MacBook Pro with Core i9, and AVX-512 capable CPUs on substring search benchmarks.
On Xavier one can quite easily disable/enable cores and reconfigure power usage. At peak I got to 4.2 GB/J which was an 8.3x improvement in inefficiency over LibC in substring search operations. The comparison table is still available in the older README: https://github.com/ashvardanian/StringZilla/tree/v2.0.2?tab=...
-
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.
-
The idea is to write a C++ model that that produces cycle accurate outputs of the branch predictor, core pipeline, queues, memory latency, cache hierarchy, prefetch behaviour, etc. Transistor level accuracy isn't needed as long as the resulting cycle timings are identical or near identical. The improvement in workload runtime compared to a Verilog simulation is precisely because they aren't trying to model every transistor, but just the important parameters which effect performance.
Let's take a simple example: Instead of modeling a 64-bit adder in all its gory transistor level detail, you can just have the model return the correct data after 1 "cycle" or whatever your ALU latency is. As long as that cycle latency is the same as the real hardware, you'll get an accurate performance number.
What's particularly useful about these models is they enable much easier and faster state space exploration to see how a circuit would perform, well before going ahead with the Verilog implementation, which relatively speaking can take circuit designers ages. "How much faster would my CPU be if it had a 20% larger register file" can be answered in a day or two before getting a circuit designer to go try and implement such a thing.
If you want an open source example, take a look at the gem5 project (https://www.gem5.org). It's not quite as sophisticated as the proprietary models used in industry, but it's a used widely in academia and open source hardware design and is a great place to start.
-
-
dosbox-staging
DOSBox Staging is a modern continuation of DOSBox with advanced features and current development practices.
DOSBox Staging has the best CRT emulation I've seen. It really feels like going back to a VGA monitor.
See the screenshots on https://dosbox-staging.github.io/
-
Project mention: 1 year of Panda3DS development: Where we are and what the future holds (featuring Pokemon!) | /r/emulation | 2023-09-18
Link to the release: https://github.com/wheremyfoodat/Panda3DS/releases/tag/v0.6-pandiversary
-
Project mention: Is there a good alternative to the HP Prime, TI Inspire CAS, Casio CAS equivalent for iOS/Android? | /r/calculators | 2023-12-06
-
-
Project mention: Amiberry: Optimized Amiga emulator for the Raspberry Pi and other Linux devices | news.ycombinator.com | 2023-11-10
-
Project mention: What are some concepts/tools/tricks that are frequently used in C/C++ code for embedded software? | /r/embedded | 2023-07-10
The only all-C++ RTOS implementation (that I've come across) is Distortos..
-
Github: https://github.com/mmatyas/supermariowar
-
Project mention: [D] Run Pytorch model inference on Microcontroller | /r/MachineLearning | 2023-11-14
CMSIS-NN. ARM centric. Examples. They also have an example for a pytorch to tflite converter via onnx
-
qpcpp
QP/C++ Real-Time Embedded Framework/RTOS for embedded systems based on active objects (actors) and hierarchical state machines
-
EmbeddedProto
Embedded Proto is a C++ Protocol Buffers implementation specifically suitable for microcontrollers. It is small, reliable and easy to use.
-
-
-
openblok
A customizable, cross platform, open-source falling block game, packed with a bunch of features.
-
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
C++ Arm related posts
- Citra Nintendo 3DS/DS emulator is gone from GitHub
- Is there a good alternative to the HP Prime, TI Inspire CAS, Casio CAS equivalent for iOS/Android?
- 1 year of Panda3DS development: Where we are and what the future holds (featuring Pokemon!)
- Hot Chips 2023: Arm’s Neoverse V2
- Show HN: U)Search Images demo in 200 lines of Python
- Panda3DS emulator developer blog: Exploring the software and hardware of the 3DS
- Dynarmic – An ARM dynamic recompiler (AArch32/64 to x86-64/AArch64)
-
A note from our sponsor - WorkOS
workos.com | 18 Apr 2024
Index
What are some of the best open-source Arm projects in C++? This list will help you:
Project | Stars | |
---|---|---|
1 | simdjson | 18,337 |
2 | libfacedetection | 12,005 |
3 | Open3D | 10,436 |
4 | MNN | 8,278 |
5 | keystone | 2,176 |
6 | Simd | 1,966 |
7 | StringZilla | 1,749 |
8 | gem5 | 1,404 |
9 | sse2neon | 1,217 |
10 | dosbox-staging | 1,165 |
11 | Panda3DS | 734 |
12 | firebird | 636 |
13 | vulkan_best_practice_for_mobile_developers | 634 |
14 | amiberry | 602 |
15 | distortos | 428 |
16 | supermariowar | 413 |
17 | ML-examples | 400 |
18 | qpcpp | 349 |
19 | EmbeddedProto | 178 |
20 | baremetal | 174 |
21 | wcecl | 127 |
22 | openblok | 94 |
23 | ulisp-arm | 91 |