A DARPA új fordítóit hat különböző számítási típuson tesztelik

A DARPA MOCHA programja olyan fordítókat fejleszt, amelyek kevés emberi beavatkozással igazíthatók új, heterogén hardverekhez. A Carnegie Mellon Egyetem Software Engineering Institute-ja már kiválasztotta a tesztelésre szánt jelöltek egy részét.
- A DARPA MOCHA célja a fordítók gyors igazítása heterogén hardverekhez.
- A program hat különböző számítási típust tervez lefedni.
- A tesztgép Intel Core Ultra 9 285K processzorra épülő torony.
- A jelölteket öt szempont, köztük az LLVM és MLIR támogatása alapján szűrték.
- A listán AMD, Intel, NEC és Qualcomm hardverek szerepelnek.
A program célja a hardverekhez igazodó fordítás automatizálása
A modern számítógépek egyre ritkábban épülnek egyetlen processzorra. A központi processzorok, grafikus processzorok és különféle, gépi tanulásra, jelfeldolgozásra vagy hálózati feladatokra szánt gyorsítók együtt alkotnak heterogén rendszereket. Ezekből nehéz gyors programot készíteni, különösen akkor, ha a fordító korábban nem találkozott az adott hardverrel.
A DARPA MOCHA, vagyis a Machine Learning and Optimization-guided Compilers for Heterogeneous Architectures program ezt a problémát célozza. A program a DARPA Information Processing Techniques Office-hoz tartozik, vezetője Dr. Howard Shrobe. A cél olyan adatvezérelt módszerek, gépi tanulási eljárások és fejlett optimalizálási technikák alkalmazása, amelyek felgyorsíthatják a fordítók új hardverekhez igazítását.
A jelenlegi gyakorlatban egy új gyorsító kihasználásához gyakran kézzel írt, célhardverre szabott kódra és gyártói optimalizált könyvtárakra van szükség. Ez lassú és költséges, ráadásul a saját könyvtárak használata megnehezíti az alkalmazások más hardverre költöztetését. A MOCHA egyik alapfeltevése szerint a célhardver teljesítménymodelljeit mérésekből és architekturális dokumentációból is létre lehet hozni.
A program egyik vezérelve az ALARA, vagyis az emberi közreműködés ésszerűen elérhető legalacsonyabb szinten tartása. A DARPA szerint ehhez nem elég egyetlen új chip gyors támogatása, a fordítónak eltérő számítási elemek széles körére kell alkalmazhatónak lennie.
A SEI feladata a tesztelési környezet kialakítása
A CMU Software Engineering Institute AI Division részéhez tartozó Advanced Computing Lab a kormányzati csapatot támogatja. Feladata a lehetséges célhardverek összegyűjtése és értékelése, majd az eredmények átadása a program vezetőjének. A labor később létrehozza és fenntartja azt a gépet is, amelyben a kiválasztott számítási elemeket integrálják.
A tesztelési módszertant szintén a SEI alakítja ki, hogy a résztvevő fejlesztőcsapatok eredményei összehasonlíthatók legyenek. A csapatok magát a fordítótechnológiát fejlesztik, a SEI pedig jellemzett, reprezentatív és kellően nehéz célhardvereket biztosít számukra.
A DARPA terve szerint a MOCHA végére hat különböző számítási típust kell lefedni. Egy ilyen típus meghatározásához nem pusztán a hardver felépítése számít, hanem az utasításkészlet és a programozási modell is. Emiatt külön kategóriának számít például egy adatközponti GPU, egy FPGA-t és térbeli AI-motort egyesítő eszköz, egy hosszúvektoros processzor, valamint egy RISC-V alapú, adatfolyamatos AI-gyorsító.
A tesztgép egy Intel Core Ultra 9 285K processzorra épülő, munkaállomásosztályú torony. Már eleve rendelkezik AVX2 SIMD-képességgel, integrált Xe GPU-val, neurális feldolgozóegységgel, PCIe 5.0 csatlakozással és egy NVIDIA RTX 4500 Ada kártyával. Emiatt a további jelölteknek PCIe-kártyaként kell elférniük a házban, és bele kell férniük a gép energia- és hűtési keretébe.
Öt szempont alapján szűrték a jelölteket
A kiválasztásnál öt tényezőt vizsgáltak: a rendelkezésre állást, az eszköz érettségét, a megfizethetőséget, a programozhatóságot és azt, hogy a hardver használható-e a tesztgépben.
A gépbe nem illő megoldások közé kerültek például azok a waferméretű processzorok és újrakonfigurálható adatfolyam-rendszerek, amelyeket csak komplett szerverként szállítanak, valamint az olyan felhőalapú gyorsítók, amelyeket nem lehet megvásárolni és egyetlen toronyba beszerelni. A költség szintén kizáró tényező volt azoknál az alkatrészeknél, amelyek drágábbak lettek volna a teljes gépnél.
A legnagyobb súlyt a programozhatóság kapta, ezen belül az LLVM- és MLIR-támogatás. A MOCHA résztvevői jellemzően erre az ökoszisztémára építenek. Az LLVM bővíthető köztes reprezentációt és eszközöket kínál, az MLIR pedig több absztrakciós szinten teszi lehetővé a köztes reprezentációk használatát. Így a számítás fokozatosan alakítható át egy adott eszköz számára megfelelő formára.
A SEI szerint egy meglévő MLIR- vagy LLVM-útvonal megkönnyíti, hogy a fejlesztők a fordító új célhardverhez igazításával, a tanult költségmodellekkel és az optimalizálás kiválasztásával foglalkozzanak. Egy kizárólag gyártói, magas szintű következtetési veremen keresztül elérhető, zárt eszköz esetében viszont kevés lehetőség maradhat a MOCHA fordítói számára.
A kiválasztási listán GPU-k és speciális gyorsítók szerepelnek
A munkalistára több, egymástól eltérő architektúra került. Az AMD Instinct MI350P adatközponti GPU, amely a CDNA 4 architektúrára épül, és ROCm, illetve HIP segítségével programozható. A SEI szerint ehhez érett MLIR-támogatás kapcsolódik a rocMLIR és a Triton útvonalán keresztül. A kártya PCIe-s kivitelben érhető el, így az OAM osztályú Instinct számítási kapacitását szabványos bővítőhelyre hozza.
Az AMD Versal ACAP FPGA-szövetet, térbeli AI-motort és ARM-magokat egyesítő heterogén eszköz. Az mlir-aie, az IRON és a Peano LLVM back end révén az AI-motorhoz alacsony szintű MLIR-útvonal tartozik.
Az Intel Data Center GPU Max 1100 Xe-HPC GPU, amelyet a oneAPI és a SYCL segítségével lehet programozni. MLIR-en keresztül az Intel Triton XPU back endje és a SPIR-V kapcsolódik hozzá. Ez az egyetlen Max sorozatú, PCIe-kártyaként kínált változat.
Az Intel Gaudi 3 mátrix- és VLIW-SIMD tenzormotorokat használ. Egyedi kernelek írhatók hozzá a nyílt TPC-LLVM fordítón keresztül, miközben a gráffordító MLIR-alapú összevont kerneleket készít. Maga a gráffordító azonban zárt marad.
A listán szerepel az értékelőgépbe már beépített Intel Xe iGPU is, amely a Max 1100-zal közös oneAPI, SYCL és MLIR útvonalat használja. A NEC SX-Aurora TSUBASA PCIe-kártyás, klasszikus hosszúvektoros processzor, upstream LLVM back enddel. A Qualcomm Cloud AI 100 szintén a jelöltek között van, a forrás azonban ennél a pontnál nem közöl további részleteket.
A tesztelés a fordítók hordozhatóságát vizsgálja
A kiválasztott hardverek változatossága közvetlenül kapcsolódik a MOCHA céljához. A program azt akarja megmutatni, hogy a fordítók gyorsan és kevés kézi munkával igazíthatók eltérő architektúrákhoz és utasításkészletekhez.
A SEI szerepe ezért túlmutat az egyes kártyák beszerzésén. A labor olyan közös értékelési környezetet készít elő, amelyben a fejlesztők eredményei azonos, jellemzett és reprezentatív célhardvereken mérhetők. A forrás alapján a következő időszak egyik meghatározó feladata annak biztosítása lesz, hogy a hat különböző számítási típus összehasonlítható módon kerüljön a program látóterébe.
CMU Software Engineering Institute Blog: Choosing the Hardware That Will Put DARPA MOCHA’s Compilers to the Test
