Detta papper presenterar utformningen av Glow, en maskininlärning kompilator för heterogen hårdvara. Det är en pragmatisk metod för sammanställning som möjliggör generering av hög optimerad kod för flera mål. Glow sänker det traditionella neurala nätverkets dataflödeskurva till en starkt typad mellanrepresentation i två faser. Den intermediära representationen på hög nivå gör det möjligt för optimizern att utföra domänspecifika optimeringar. Den lägre nivån instruktionsbaserade adress endast mellanliggande representation gör det möjligt för kompilatorn att utföra minnesrelaterade optimeringar, såsom instruktion schemaläggning, statisk minnesallokering och kopiering eliminering. På den lägsta nivån utför optimizern maskinspecifik kodgenerering för att dra nytta av specialiserade hårdvarufunktioner. Glow har en lägre fas som gör det möjligt för kompilatorn att stödja ett stort antal inmatningsoperatörer samt ett stort antal hårdvarumål genom att eliminera behovet av att genomföra alla operatörer på alla mål. Den lägre fasen är utformad för att minska ingångsutrymmet och tillåta nya hårdvarubackends att fokusera på ett litet antal linjära algebra primitiva.
Glow REF är en ny domänspecifik, målinriktad kompilator för PyTorch/Caffe2.
Glow: Graph Lowering Compiler Techniques for Neural Networks
{'venue': 'ArXiv', 'journal': 'ArXiv', 'mag_field_of_study': ['Computer Science']}