Nous pouvons lire sur la page Wikipedia que Google a construit une puce ASIC personnalisée pour l'apprentissage automatique et adaptée à TensorFlow qui aide à accélérer l'IA.
Étant donné que les puces ASIC sont spécialement personnalisées pour une utilisation particulière sans possibilité de changer son circuit, il doit y avoir un algorithme fixe qui est invoqué.
Alors, comment fonctionne exactement l'accélération de l'IA à l'aide de puces ASIC si son algorithme ne peut pas être modifié? Quelle partie accélère exactement?
Réponses:
Opérations tenseur
Le travail majeur dans la plupart des applications ML est simplement un ensemble d'opérations tensorielles (très importantes), par exemple la multiplication matricielle. Vous pouvez faire cela facilement dans un ASIC, et tous les autres algorithmes peuvent simplement exécuter au - dessus de cela.
la source
Je pense que l'algorithme a changé de façon minimale, mais le matériel nécessaire a été coupé jusqu'à l'os.
Le nombre de transitions de porte est réduit (peut-être les opérations flottantes et la précision aussi), tout comme le nombre d'opérations de déplacement de données, économisant ainsi à la fois la puissance et le temps d'exécution. Google suggère que leur TPU réalise une économie de 10 fois pour faire le même travail.
https://cloudplatform.googleblog.com/2016/05/Google-supercharges-machine-learning-tasks-with-custom-chip.html
la source
ASIC - Il signifie IC spécifique à l'application. Fondamentalement, vous écrivez des programmes pour concevoir une puce en HDL . Je vais prendre des cas de la façon dont les ordinateurs modernes fonctionnent pour expliquer mon point:
n
nombres de coeurs? Aucun problème. Vous souhaitez définir le flux de données depuis différentes unités de traitement vers différents endroits? Tu peux le faire. Aussi, avec une planification minutieuse, vous pouvez obtenir un compromis entre la zone ASIC et la puissance contre la vitesse. Le seul problème est que pour tout cela, vous devez créer vos propres normes. Généralement, certaines normes bien définies sont suivies dans la conception des processeurs, comme le nombre de broches et leur fonctionnalité, la norme IEEE 754 pour la représentation en virgule flottante, etc., qui ont été élaborées après de nombreux essais et erreurs. Donc, si vous pouvez surmonter tout cela, vous pouvez facilement créer votre propre ASIC.Je ne sais pas ce que Google fait avec leurs TPU, mais apparemment, ils ont conçu une sorte de standard Integer et FP pour leurs cœurs 8 bits en fonction des besoins. Ils l'implémentent probablement sur ASIC pour des considérations de puissance, de zone et de vitesse.
la source
La faible précision permet un calcul de parallélisme élevé dans les couches Convo et FC. Architecture fixe CPU et GPU, mais ASIC / FPGA peut être conçu sur la base d'une architecture de réseau neuronal
la source