Compiling a program from a graph

A compiler generates a program to run on a processing system having one or more chips, each comprising one or more processing modules having an execution unit and multiple memory banks which cannot be accessed by different load or store operations in a single instruction. An input graph comprises da...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: Godfrey Da Costa, David Lacey
Format: Patent
Sprache:eng
Schlagworte:
Online-Zugang:Volltext bestellen
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Beschreibung
Zusammenfassung:A compiler generates a program to run on a processing system having one or more chips, each comprising one or more processing modules having an execution unit and multiple memory banks which cannot be accessed by different load or store operations in a single instruction. An input graph comprises data nodes 512 representing variables or constants, compute vertices 514 representing computations to perform, and edges 516 representing the flow of data. The graph may describe a neural network machine learning program. The graph is compiled into an executable program including multi-access instructions which perform multiple store operations, multiple loads, or a mixture of load and store operations, in a single instruction. The compiler assigns multi-access instructions to implement edges of the graph, and allocates data elements to the memory banks so as to avoid conflict arising from multi-access instructions attempting to perform multiple operations on the same memory bank.