Pieter Edelman
14 februari

De Britse ai-chipmaker Graphcore heeft Solid Sands uit Amsterdam in de arm genomen om zijn C++-toolketen te valideren. Graphcore is op het moment een van de meest in het oog springende spelers in applicatiespecifieke processoren voor machine learning; het haalde onlangs nog 200 miljoen dollar op bij investeerders, waaronder BMW en Microsoft.

Machine learning-toepassingen kunnen enorme rekenkracht vergen en er wordt hard gewerkt aan applicatiespecifieke processoren die die rekenlast beter aankunnen. Typisch zijn dit ai-toepassingen sterk gedistribueerd en doen een zwaar beroep op het geheugen. Graphcore’s processoren – Intelligence Processing Units gedoopt (ipu’s) – bestaan uit honderden relatief simpele en onafhankelijke processortegeltjes, elk met hun eigen bak geheugen, en faciliteiten om onderling data uit te wisselen.

Om deze chips te programmeren, gebruikt Graphcore een model waarbij de applicatie uitgedrukt wordt in wiskundige graphs. Dit model laat zich goed distribueren over grote hoeveelheden cores, zonder dat de programmeur hier expliciet over hoeft na te denken. Het bedrijf heeft een eigen C++-toolketen ontwikkeld, Poplar, die de graph-beschrijvingen kunnen compileren naar machinecode, distribueren over de processoren en de datastromen kunnen organiseren. De tooling dient ook als interface met hoogniveau beschrijvingen in de gangbare ai-raamwerken zoals Tensorflow en Pytorch.

Om deze tooling grondig te checken, gebruikt Graphcore het Supertest-pakket van Solid Sands, dat in 2014 werd uitgesponnen uit het (nu failliete) Ace Compiler Experts. Supertest bestaat uit een grote verzameling testcases en bijbehorend raamwerk om C/C++-compilers te valideren. Dergelijke testen zijn extra belangrijk voor Graphcore omdat de compiler complexe optimalisaties moet uitvoeren waarbij de volgorde van executie flink onder handen genomen kan worden.

Door het gebruik van normaal C++ denkt Graphcore het evenwel voor softwareontwikkelaars makkelijker maken om de innovatieve processoren te programmeren. ‘We hebben een silicium platform ontwikkeld met compleet andere structuur dan wat vandaag de dag bestaat’, legt Matt Fyles uit, vicepresident software bij Graphcore. We willen programmeurs een robuuste programmeeromgeving bieden met standaard programmeertalen als C++.’