Auteur : Zen et l'art de la programmation informatique
1. Introduction
Avec l'essor de l'apprentissage en profondeur, des applications telles que la reconnaissance d'images, la reconnaissance vocale et l'analyse vidéo sont de plus en plus utilisées. Ces dernières années, certains modèles ont également gagné en taille et en complexité. Par conséquent, comment exécuter ces modèles rapidement et avec précision devient une direction de recherche importante.
Les technologies d'accélération de modèles grand public actuelles sont principalement concentrées au niveau du cadre, telles que TensorRT, NCNN, OpenVINO, etc. Mais ces techniques ne peuvent être utilisées que sur des plates-formes matérielles spécifiques ou des moteurs d'inférence spécifiques. Par exemple, TensorRT ne peut être utilisé que sur les GPU NVIDIA, pas directement sur les CPU ; OpenVINO ne peut fonctionner que sur les CPU ou GPU Intel, et ne peut pas être utilisé directement sur des appareils tels que les téléphones mobiles ou l'architecture Raspberry Pi on Arm. Par conséquent, si vous souhaitez que le modèle s'exécute sur un matériel différent, vous avez besoin d'une technologie d'accélération de modèle plus générale.
En 2019, Nvidia a lancé une technologie appelée Tensor Boost, qui peut augmenter la puissance de calcul des réseaux de neurones à un niveau proche des scénarios de déploiement réels. Tensor Boost peut être intégré de manière transparente à des frameworks tels que TensorFlow, PyTorch et MXNet. Cela fonctionne comme ceci :
Tout d'abord, Tensor Boost génère automatiquement une séquence d'instructions de calcul qui correspondent au matériel cible en analysant la structure interne du modèle. Ensuite, ces séquences d'instructions sont compilées en code machine et exécutées directement, sans s'appuyer sur des résultats intermédiaires du framework.
Deuxièmement, Tensor Boost utilise la technologie d'optimisation des réseaux neuronaux pour affiner le modèle afin d'améliorer encore les performances de calcul.
Troisièmement, Tensor Boost peut apprendre automatiquement l'efficacité de calcul et l'efficacité d'utilisation des ressources du modèle d'apprentissage en ligne, afin que le modèle puisse afficher les meilleures performances dans différentes conditions.
Sur la base des trois caractéristiques techniques ci-dessus, nous allons vous montrer aujourd'hui l'application de la technologie Tensor Boost dans TensorFlow. Tout d'abord, nous examinerons le fonctionnement de TensorBoost et expliquerons comment TensorBoost peut être intégré à d'autres modèles.