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. Learn more →
Top 23 C++ Deep Learning Projects
-
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.
-
openpose
OpenPose: Real-time multi-person keypoint detection library for body, face, hands, and foot estimation
-
DeepSpeech
DeepSpeech is an open source embedded (offline, on-device) speech-to-text engine which can run in real time on devices ranging from a Raspberry Pi 4 to high power GPU servers.
-
PaddlePaddle
PArallel Distributed Deep LEarning: Machine Learning Framework from Industrial Practice (『飞桨』核心框架,深度学习&机器学习高性能单机、分布式训练和跨平台部署)
-
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.
-
ncnn
ncnn is a high-performance neural network inference framework optimized for the mobile platform
-
TensorRT
NVIDIA® TensorRT™ is an SDK for high-performance deep learning inference on NVIDIA GPUs. This repository contains the open source components of TensorRT.
-
MNN
MNN is a blazing fast, lightweight deep learning framework, battle-tested by business-critical use cases in Alibaba
-
jetson-inference
Hello AI World guide to deploying deep-learning inference networks and deep vision primitives with TensorRT and NVIDIA Jetson.
-
DALI
A GPU-accelerated library containing highly optimized building blocks and an execution engine for data processing to accelerate deep learning training and inference applications.
-
mace
MACE is a deep learning inference framework optimized for mobile heterogeneous computing platforms.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Project mention: TensorFlow-metal on Apple Mac is junk for training | news.ycombinator.com | 2024-01-16
Project mention: การจำแนกสายพันธุ์มะม่วง โดยใช้ Visual Geometry Group 16 (VGG16) ใน Python | dev.to | 2024-04-16Referenceshttps https://www.kaggle.com/datasets/riyaelizashaju/skin-disease-image-dataset-balanced?fbclid=IwAR3wbTp8l5yo_5fx6HAX8Vd2-9cca3khAc8EiBGFObaALfdVid29IuB_rYE https://keras.io/api/applications/vgg/ https://www.tensorflow.org/tutorials/images/cnn?hl=th https://opencv.org/
Click to Learn more...
Project mention: AI "Artists" Are Lazy, and the Ultimate Goal of AI Image Generation (hint: its sloth) | /r/ArtistHate | 2023-11-25Open Pose, a multi-person keypoint detection library for body, face, hands, and foot estimation [10], is used for posing generated characters;
mediapipe/docs/solutions/pose.md at master · google/mediapipe · GitHub
Click to Learn more...
Project mention: AMD Funded a Drop-In CUDA Implementation Built on ROCm: It's Open-Source | news.ycombinator.com | 2024-02-12ncnn uses Vulkan for GPU acceleration, I've seen it used in a few projects to get AMD hardware support.
https://github.com/Tencent/ncnn
Project mention: Modern Image Processing Algorithms Implementation in C | news.ycombinator.com | 2023-06-06
ONNX Runtime: ONNX Runtime: cross-platform, high performance ML inferencing and training accelerator
Project mention: Tesla braces for its first trial involving Autopilot fatality | news.ycombinator.com | 2023-08-28
Project mention: AMD MI300X 30% higher performance than Nvidia H100, even with optimized stack | news.ycombinator.com | 2023-12-17> It's not rocket science to implement matrix multiplication in any GPU.
You're right, it's harder. Saying this as someone who's done more work on the former than the latter. (I have, with a team, built a rocket engine. And not your school or backyard project size, but nozzle bigger than your face kind. I've also written CUDA kernels and boy is there a big learning curve to the latter that you gotta fundamentally rethink how you view a problem. It's unquestionable why CUDA devs are paid so much. Really it's only questionable why they aren't paid more)
I know it is easy to think this problem is easy, it really looks that way. But there's an incredible amount of optimization that goes into all of this and that's what's really hard. You aren't going to get away with just N for loops for a tensor rank N. You got to chop the data up, be intelligent about it, manage memory, how you load memory, handle many data types, take into consideration different results for different FMA operations, and a whole lot more. There's a whole lot of non-obvious things that result in high optimization (maybe obvious __after__ the fact, but that's not truthfully "obvious"). The thing is, the space is so well researched and implemented that you can't get away with naive implementations, you have to be on the bleeding edge.
Then you have to do that and make it reasonably usable for the programmer too, abstracting away all of that. Cuda also has a huge head start and momentum is not a force to be reckoned with (pun intended).
Look at TensorRT[0]. The software isn't even complete and it still isn't going to cover all neural networks on all GPUs. I've had stuff work on a V100 and H100 but not an A100, then later get fixed. They even have the "Apple Advantage" in that they have control of the hardware. I'm not certain AMD will have the same advantage. We talk a lot about the difficulties of being first mover, but I think we can also recognize that momentum is an advantage of being first mover. And it isn't one to scoff at.
[0] https://github.com/NVIDIA/TensorRT
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..
Yet another TEDIOUS BATTLE: Python vs. C++/C stack.
This project gained popularity due to the HIGH DEMAND for running large models with 1B+ parameters, like `llama`. Python dominates the interface and training ecosystem, but prior to llama.cpp, non-ML professionals showed little interest in a fast C++ interface library. While existing solutions like tensorflow-serving [1] in C++ were sufficiently fast with GPU support, llama.cpp took the initiative to optimize for CPU and trim unnecessary code, essentially code-golfing and sacrificing some algorithm correctness for improved performance, which isn't favored by "ML research".
NOTE: In my opinion, a true pioneer was DarkNet, which implemented the YOLO model series and significantly outperformed others [2]. Same trick basically like llama.cpp
[1] https://github.com/tensorflow/serving
Project mention: MatX: Efficient C++17 GPU numerical computing library with Python-like syntax | news.ycombinator.com | 2023-10-03I think a comparison to PyTorch, TensorFlow and/or JAX is more relevant than a comparison to CuPy/NumPy.
And then maybe also a comparison to Flashlight (https://github.com/flashlight/flashlight) or other C/C++ based ML/computing libraries?
Also, there is no mention of it, so I suppose this does not support automatic differentiation?
Another option is DALI https://github.com/NVIDIA/DALI For my project while training EfficientNet2, it was a game changer. But it a way harder to implement in code than TorchVision or Kornia.
C++ Deep Learning related posts
- การจำแนกสายพันธุ์มะม่วง โดยใช้ Visual Geometry Group 16 (VGG16) ใน Python
- The Elements of Differentiable Programming
- Who uses Google TPUs for inference in production?
- Google TPU v5p beats Nvidia H100
- Opencv-Python adds support for Pathlike objects
- TensorFlow-metal on Apple Mac is junk for training
- Vcc – The Vulkan Clang Compiler
-
A note from our sponsor - InfluxDB
www.influxdata.com | 25 Apr 2024
Index
What are some of the best open-source Deep Learning projects in C++? This list will help you:
Project | Stars | |
---|---|---|
1 | tensorflow | 182,323 |
2 | OpenCV | 75,423 |
3 | Caffe | 33,859 |
4 | openpose | 29,867 |
5 | mediapipe | 25,405 |
6 | DeepSpeech | 24,212 |
7 | PaddlePaddle | 21,584 |
8 | ncnn | 19,176 |
9 | CNTK | 17,435 |
10 | Dlib | 13,011 |
11 | onnxruntime | 12,656 |
12 | carla | 10,491 |
13 | TensorRT | 9,065 |
14 | MNN | 8,293 |
15 | jetson-inference | 7,323 |
16 | wav2letter | 6,331 |
17 | serving | 6,070 |
18 | openvino | 5,864 |
19 | tiny-cnn | 5,763 |
20 | oneflow | 5,715 |
21 | flashlight | 5,145 |
22 | DALI | 4,914 |
23 | mace | 4,876 |
Sponsored