Leveraging the Power of C++ for Efficient Machine Learning on Embedded DevicesLeveraging the power of C++ for efficient machine learning on embedded devices Adrian Stanciu adrian.stanciu.pub@gmail.com CppCon, 2023 1 / 50About me ◮ I am a software engineer from Romania ◮ I have Image classification ◮ Hand gesture recognition ◮ Summary ◮ Q&A 4 / 50Motivation 5 / 50Machine Learning (ML) ◮ Subfield of Artificial Inteligence (AI) ◮ Enables computers to learn from data and then consumption ◮ May have real-time performance constraints 7 / 50Machine learning on embedded devices ◮ Alternative to cloud-based machine learning ◮ Advantages: ◮ Real-time processing ◮ Low latency ◮ Reduced bandwidth0 码力 | 51 页 | 1.78 MB | 6 月前3
micrograd++: A 500 line C++ Machine Learning Librarymicrograd++: A 500 line C++ Machine Learning Library Gautam Sharma Independent Researcher gautamsharma2813@gmail.com Abstract—micrograd++ is a pure C++ machine learning li- brary inspired by Andrej Karpathy’s for building and training machine learning models. By leveraging the performance efficiency of C++, micro- grad++ offers a robust solution for integrating machine learning capabilities directly into C++-based Traditionally, all machine learning libraries are extremely bulky and very hard to integrate as third party dependencies. This aspect scares practitioners to adopt a C++ based machine learning library for prototyping0 码力 | 3 页 | 1.73 MB | 6 月前3
Cetting Started with C++Building correct, secure, and safe systems Planning for the future Agenda Resources for learning modern C++ 0501 Obtaining tools for your platform 02 03 04 Code reuse through libraries Building correct, secure, and safe systems Planning for the future Agenda Resources for learning modern C++ 05Tools for your platform Build & project systems Editors & IDEs Compiler toolchainsTools Building correct, secure, and safe systems Planning for the future Agenda Resources for learning modern C++ 0501 Obtaining tools for your platform 02 03 04 Code reuse through libraries0 码力 | 95 页 | 4.71 MB | 6 月前3
C++ in the Developing World, Why it Mattersresearching on computers and programming and how to practically apply it well for several years, still learning and enjoying the journey. • I am passionate about energy efficient computing and making the most the use of C level constructs, but when wrapped in C++ containers, types, with the use of RAII Learning/Teaching C++ • Now that we have talked a little about the “Why” I would like to touch on the “How” This learning is gradual and happens step by step. • Adults Help to Improve the Learning of Children by Stepping Down A level Closer to Children Through “Baby Talk” How Does this Map to Learning C++0 码力 | 8 页 | 177.52 KB | 6 月前3
Back To Basics Functionsthe various powers that are given to us from the ground up. Consider this talk your one stop for learning all of the great things about functions! We'll start with a basic function example, identifying (1/3) 17 ● I remember learning about loops ○ (Using goto and do/loop) ■ Wow -- I can save myself repeating typing of code!A Monumental Moment! (2/3) 18 ● I remember learning about loops ○ (Using something different than the math functions I’m learning in school ■ Sounds like I can do some interesting stuff!A Monumental Moment! (3/3) 19 ● I remember learning about loops ○ (Using goto and do/loop)0 码力 | 123 页 | 7.26 MB | 6 月前3
Continuous Regression Testing for Safer and Faster Refactoringpractices. Extract real-time insights about software development life- cycle.68 Aurora Innovation Learning what to test Good tests verify a system expectation that is prone to change. Good tests are the Scope Con�dence By Etienne Jong69 Aurora Innovation Learning how to test Expressive Good tests are easy to read and effective way of learning business logic. Apply the same code hygiene to your tests production code. Measure test coverage in terms of veri�ed business requirements.70 Aurora Innovation Learning when to run each test Reliability Fast Feedback Optimize for return on investment. Avoid reusing0 码力 | 85 页 | 11.66 MB | 6 月前3
Back to Basics: PointersPointers are scary. Unfortunately that previous statement is what many beginners take away when first learning about pointers and the C++ language. In this talk, we will discuss the low level foundations of find pointers are not scary, but just another tool we can use in our programmers’ toolbox. After learning the foundations, we are then going to discuss some of the pitfalls of pointers (e.g. nullptr’s ● When learning pointers, it’s often useful to draw (on pen and paper) our memory ○ Let’s represent our variables as boxes for now.Visualizing our first program (2/5) 23 ● When learning pointers0 码力 | 152 页 | 5.61 MB | 6 月前3
COMPOSABLE C++with both.WHAT IS THE LEARNING HERE? WHAT IS THE LEARNING HERE? Q. What makes composite nice to use? Q. What makes composite nice to use?WHAT IS THE LEARNING HERE? WHAT IS THE LEARNING HERE? Q. What makes put to put conditions conditions in the calling code. in the calling code.HERE'S THE LEARNING HERE'S THE LEARNING No raw conditions No raw conditions.. A A raw condition raw condition is is any binary0 码力 | 124 页 | 8.28 MB | 6 月前3
CROSS PLATFORM PITFALLS AND HOW TO AVOID THEMnetwork effectCMAKE The problemsCMake: the problems Learning the language of the build system Syntax, best practicesCMake: the problems Learning the language of the build system Syntax, best practices vs. command driven interface Breakpoints highlighted, watches and locals open simultaneously Learning curveDebugging: the problems Unfamiliar with platform specific tools A common theme: teams have vs. command driven interface Breakpoints highlighted, watches and locals open simultaneously Learning curve Switching between platformsDEBUGGING The solution spaceDebugging: the solution space0 码力 | 67 页 | 360.44 KB | 6 月前3
Back to Basics: Design Patternsbut have never had a chance to study design patterns and need some resources to help orient them. Learning about design patterns and where to apply them can at the least give you a way to think about how for object-oriented programming 26 ● I really enjoyed this book (as a graphics programmer) for learning design patterns. ○ There’s a free web version here: https://gameprogrammingpatterns.com/ ○ I recommendation is to continue learning more patterns and apply them to small projects to test out their utility 86Going Further Some things that may be useful for learning more design patterns 87Unified0 码力 | 96 页 | 2.10 MB | 6 月前3
共 92 条
- 1
- 2
- 3
- 4
- 5
- 6
- 10













