The course is taught entirely in English.
The course begins by introducing the main concepts and algorithms behind the most common Machine Learning and Artificial Intelligence methods and algorithms. Then it describes the main hardware platforms used for both training and inferencing, and their impact on the algorithm design and optimization, with a particular focus on embedded platforms and hardware acceleration support. Finally it provides hands-on experience programming some significant applications on commonly used embedded AI platforms (e.g. Movidius, Zynq, ...).
It does not require any background on AI or ML, but a solid knowledge of linear algebra, of programming in C/C++ and some knowledge of processor architecture and hardware design.
The course is taught entirely in English.
The course begins by introducing the main concepts and algorithms behind the most common Machine Learning and Artificial Intelligence methods and algorithms. Then it describes the main hardware platforms used for both training and inferencing, and their impact on the algorithm design and optimization, with a particular focus on embedded platforms and hardware acceleration support. Finally it provides hands-on experience of programming some significant applications on commonly used embedded AI platforms (e.g. Movidius, Zynq, ...).
It does not require any background on AI or ML, but a solid knowledge of linear algebra, of programming in C/C++ and some knowledge of processor architecture and hardware design.
- Knowledge of the main computational models and algorithms for ML and AI (e.g. regression, Support Vector Machine, Singular Value Decomposition, Neural Networks, ....)
- Knowledge of the main platforms to implement training and inferencing (CPUs, GPUs, vector processors, FPGAs, Tensor Processing Units)
- Knowledge of the main techniques for training and quantization of Neural Networks (DNNs, CNNs, LSTMs, ...)
- Knowledge of some programming environments for some embedded AI/ML platforms
- Ability to understand an ML or AI and discuss algorithmic implementation options with AI/ML experts and domain experts
- Ability to select the best implementation platform for a given training or inferencing task
- Ability to program and optimize an AI/ML application using a variety of acceleration options, from vector processors to FPGAs
- Knowledge of the main computational models and algorithms for ML and AI (e.g. regression, Support Vector Machine, Neural Networks, ....)
- Knowledge of the main platforms to implement training and inferencing (CPUs, GPUs, vector processors, FPGAs, Tensor Processing Units)
- Knowledge of the main techniques for training and quantization of Neural Networks (DNNs, CNNs, LSTMs, ...)
- Knowledge of some programming environments for some embedded AI/ML platforms
- Ability to understand an ML or AI and discuss algorithmic implementation options with AI/ML experts and domain experts
- Ability to select the best implementation platform for a given training or inferencing task
- Ability to program and optimize an AI/ML application using a variety of acceleration options, from vector processors to FPGAs
There is no required background on Machine Learning or Artifical Intelligence
A good background is required about:
- Linear algebra
- C/C++ programming
- Processor architecture
- Hardware design at Register Transfer Level
There is no required background on Machine Learning or Artifical Intelligence
A good background is required about:
- Linear algebra
- C/C++ programming
- Processor architecture
- Hardware design at Register Transfer Level
- Embedded applications of Artificial Intelligence and Machine Learning (e.g. precision agriculture, robotics, Automated Driver Assistance, Unmanned Aerial Vehicles, medicine, ...)
- Main models and their training/inferencing algorithms: regression, Support Vector Machines, Neural Networks (Deep, Convolutional and Recursive), K-Means, SIngular Value Decomposition, Principal Component Analysis
- Hardware platforms, in particular for embedded inferencing (but not only): CPUs, GPUs, Vector Processors (e.g. Xeon, Movidius), FPGAs, TPUs, ...
- Differences between training and inferencing, and hardware platform requirements
- HW design abstraction levels, HW/SW partitioning and HW acceleratoon, C++ for beginners
- AI/ML design frameworks, with a particular emphasis on NN training and quantization (e.g. pytorch, tensorflow/keras)
- Code optimization and compilation for DSPs and GPUs (e.g. OpenCL, SyCl)
- High-level design and synthesis for ML/AI acceleration (e.g. Xilinx Vitis)
- Embedded applications of Artificial Intelligence and Machine Learning (e.g. precision agriculture, robotics, Automated Driver Assistance, Unmanned Aerial Vehicles, medicine, ...)
- Main models and their training/inferencing algorithms: regression, Support Vector Machines, Neural Networks (Deep, Convolutional and Recursive), SIngular Value Decomposition and Principal Component Analysis, clustering
- Hardware platforms, in particular for embedded inferencing (but not only): CPUs, GPUs, Vector Processors (e.g. Xeon, Movidius), FPGAs, TPUs, ...
- Differences between training and inferencing, and hardware platform requirements
- HW design abstraction levels, HW/SW partitioning and HW acceleratoon, C++ for beginners
- AI/ML design frameworks, with a particular emphasis on NN training and quantization (e.g. pytorch, tensorflow/keras)
- Code optimization and compilation for DSPs and GPUs (e.g. OpenCL, SyCl)
- High-level design and synthesis for ML/AI acceleration (e.g. Xilinx Vitis)
The lessons will include exercises to reinforce the learning of the course topics.
Laboratory sessions will include the use of both training and quantization algorithms for neural networks and of software and hardware compilation and implementation tools
The lessons will include exercises to reinforce the learning of the course topics.
Laboratory sessions will include the use of both training and quantization algorithms for neural networks and of software and hardware compilation and implementation tools
- Machine LEarning Yearning https://www.deeplearning.ai/machine-learning-yearning/
- Efficient Processing of Deep Neural Networks: A Tutorial and Survey, https://ieeexplore.ieee.org/document/8114708
- Machine LEarning Yearning https://www.deeplearning.ai/machine-learning-yearning/
- Efficient Processing of Deep Neural Networks: A Tutorial and Survey, https://ieeexplore.ieee.org/document/8114708
Slides from the lectures will be made available
Modalità di esame: Prova orale obbligatoria; Prova scritta tramite PC con l'utilizzo della piattaforma di ateneo;
The exam will be composed of
- a written part, including exercises and quizzes, covering the practical aspects of the course, and
- a mandatory oral part, covering the entire course contents, with a specific focus on the theory, methods and algorithms
Exam: Compulsory oral exam; Computer-based written test using the PoliTo platform;
The exam will be composed of
- a written part, including exercises and quizzes, covering the practical aspects of the course, and
- a mandatory oral part, covering the entire course contents, with a specific focus on the theory, methods and algorithms
Modalità di esame: Test informatizzato in laboratorio; Prova orale obbligatoria; Prova scritta tramite PC con l'utilizzo della piattaforma di ateneo;
The exam will be composed of
- a written part, including exercises and quizzes, covering the practical aspects of the course, and
- a mandatory oral part, covering the entire course contents, with a specific focus on the theory, methods and algorithms
Exam: Computer lab-based test; Compulsory oral exam; Computer-based written test using the PoliTo platform;
The exam will be composed of
- a written part, including exercises and quizzes, covering the practical aspects of the course, and
- a mandatory oral part, covering the entire course contents, with a specific focus on the theory, methods and algorithms