Manage all types of time series data in a single, purpose-built database. Run at any scale in any environment in the cloud, on-premises, or at the edge. Learn more →
Top 23 C++ Arm Projects
-
simdjson
Parsing gigabytes of JSON per second : used by Facebook/Meta Velox, WatermelonDB, Apache Doris, Milvus, StarRocks
Everything you said is totally reasonable. I'm a big fan of napkin math and theoretical upper bounds on performance.
simdjson (https://github.com/simdjson/simdjson) claims to fully parse JSON on the order of 3 GB/sec. Which is faster than OP's Go whitespace parsing! These tests are running on different hardware so it's not apples-to-apples.
The phrase "cannot go faster than this" is just begging for a "well ackshully". Which I hate to do. But the fact that there is an existence proof of Problem A running faster in C++ SIMD than OP's Probably B scalar Go is quite interesting and worth calling out imho. But I admit it doesn't change the rest of the post.
-
libfacedetection
An open source library for face detection in images. The face detection speed can reach 1000FPS.
-
Onboard AI
Learn any GitHub repo in 59 seconds. Onboard AI learns any GitHub repo in minutes and lets you chat with it to locate functionality, understand different parts, and generate new code. Use it for free at www.getonboard.dev.
-
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
-
Another wonderful option is to play Nintendo 3DS games with the Citra emulator. They look incredible. I would go so far as to say that if you're a fan of the console then this is the best way to experience its games, even better than on the original hardware. Again use 3840x1200 @ 60 Hz and full SBS. In Emulation -> Configure... -> Graphics -> Stereoscopy set it to "Side by Side". Also increase the renderer internal resolution to as high as your PC can handle (I used "5x Native"). We'll also have to set the display layout for our resolution and aspect ratio. Unfortunately, this has to be done manually. Browse to %APPDATA%\Citra\config and edit qt-config.ini with this in the [display] section:
-
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..
-
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
-
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.
-
InfluxDB
Collect and Analyze Billions of Data Points in Real Time. Manage all types of time series data in a single, purpose-built database. Run at any scale in any environment in the cloud, on-premises, or at the edge.
-
Project mention: sse2neon - A C/C++ header file that converts Intel SSE intrinsics to Aarch64 NEON intrinsic | /r/CKsTechNews | 2022-12-26
-
dosbox-staging
DOSBox Staging is a modern continuation of DOSBox with advanced features and current development practices.
Project mention: Where is Lemmings? Was incredibly surprised not to find it on GOG recently | /r/gog | 2023-07-12 -
They're probably referring to dynarmic: https://github.com/merryhime/dynarmic
-
-
-
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
-
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
-
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
- 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)
- Announcing a new preview release of Panda3DS, a 3DS emulator for Windows, MacOS and Linux
- Help, so i saw on a video that to make amiibo work on citra you have to put .bin amiibo files in the amiibo folder in citra-emu folder but it isn't there
-
A note from our sponsor - InfluxDB
www.influxdata.com | 29 Nov 2023
Index
What are some of the best open-source Arm projects in C++? This list will help you:
Project | Stars | |
---|---|---|
1 | simdjson | 17,611 |
2 | libfacedetection | 11,836 |
3 | Open3D | 9,744 |
4 | citra | 9,655 |
5 | MNN | 8,017 |
6 | Simd | 1,895 |
7 | gem5 | 1,201 |
8 | sse2neon | 1,094 |
9 | dosbox-staging | 1,026 |
10 | dynarmic | 908 |
11 | firebird | 606 |
12 | vulkan_best_practice_for_mobile_developers | 592 |
13 | amiberry | 555 |
14 | distortos | 416 |
15 | supermariowar | 386 |
16 | ML-examples | 385 |
17 | Panda3DS | 378 |
18 | qpcpp | 320 |
19 | baremetal | 167 |
20 | EmbeddedProto | 151 |
21 | openblok | 89 |
22 | ulisp-arm | 86 |
23 | wcecl | 86 |