Introduction

Ce module python présente différentes façons d’optimiser des calculs numériques, CPU, GPU, et de relier ces algorithmes au langage python sous la forme de module. Python est devenu aujourd’hui le langage de prédilection pour tout calcul intensif. Si un ingénieur pouvait il y a une dizaine d’années être à la fois data scientist, écrire du code C++ pour accélérer ces calculs, ces deux tâches sont désormais gérées par des ingénieurs aux profils différents.

La librairie pytorch est devenue en quelques années le point d’entrée principal au deep learning. Les datascientists manipulent les briques implémentées en les assemblant pour former des réseaux de neurones. Chaque brique est optimisée par des ingénieurs connaissant les spécificités de plusieurs processeurs et systèmes d’exploitations. L’implémentation d’une brique comme la multiplication de matrices est optimisée de telle sorte qu’elle est différente sur chaque machine. Il est difficile d’écrire une version plus rapide dans le cas général mais il est parfois possible d’écrire une implémentation plus efficace pour un cas particulier.