
FPGA-de programmeerimiseks ei pea olema kiibiarendaja, nagu ei pea olema ka C++ programmeerija, et kirjutada Java koodi. Kuid mõlemal juhul on see tõenäoliselt kasulik.
Kaupade äriliseks kommertsialiseerimise eesmärk on neid tehnoloogiaid, nii Java kui ka FPGA, tõestada. Hea uudis FPGA jaoks on see, et õige abstraktsioonitaseme ja tööriistade komplekti kasutamisel on viimase 35 aasta jooksul, alates programmabile loogikaseadme leiutamisest, tekitada algoritme ja andmevooge FPGA-le aina lihtsamaks, mitte CPU, DSP, GPU ega ükski muu eriasc-i vormi toimetamiseks.
Nende loomise muljetavaldav ajastus ilmneb sellest, et just siis, kui CPU-d ei suutnud enam jääda ainsaks arvutusmooduliks. andmekeskustega Kui arvestada mitmeid erinevaid põhjuseid, on FPGA saavutanud oma efektiivsuse, pakkudes kõrget sooritusvõimet, madalat latentsust, võrgustiku võimalusi ja mälu. Kaasaegsed FPGA SoC-d esindavad praktiliselt täisfunktsionaalseid arvutussüsteeme. Kuid FPGA sobivad hästi ka teiste seadmetega hübriidsüsteemides, ja meie arvates hakkavad need alles leidma oma õigustatud kohta arvutamise hierarhias.
Seetõttu korraldasime 22. jaanuaril San Jose's konverentsi The Next FPGA Platform. Loomulikult on maailma üheks peamiseks FPGA tarnijaks ja selle valdkonna pioneeriks ettevõte Xilinx. Ivo Bolsems, Xilinxi vanem asepresident ja tehniline direktor, esines konverentsil ja jagas oma tänaseid mõtteid selle kohta, kuidas Xilinx aitab luua muudetavaid arvutussüsteeme andmekeskustele.
Süsteemiarhitektide ja programmeerijate jaoks on möödunud piisavalt aega, et jõuda mitmekesise andmekeskuseni, kus esindatakse erinevaid arvutusvõimekusi, mis lahendavad arvutamise, andmete salvestamise ja võrgustike korraldamise ülesandeid. See näib olevat vajalik seetõttu, et Moore'i seaduse järgimine erinevate CMOS-tehnoloogiatega muutub üha keerulisemaks. Praegu on meie keel endiselt seotud CPU-dega ja me räägime endiselt "rakenduste kiirendamisest", mõeldes parendusi programmide tööle võrreldes selle, mida saab teha ainult CPU-de abil. Aja jooksul muutuvad andmekeskused arvutusvõimekuste, andmesalvestuslahenduste ja kõike ühendavate protokollide kogumiks ning me naaseme selliste mõistete nagu "arvutamine" ja "rakendused" juurde. Hübriidarvutamine muutub sama tavaliseks kui tänapäeva "pilveteenused", mis töötavad tavapäraste või virtuaalmasinad, ja mingil hetkel hakkame me lihtsalt kasutama sõna „arvutamine” nende töö kirjeldamiseks. Mingil hetkel – ja tõenäoliselt aitavad FPGA-sid selle ajastu saabumisega aktiivselt – hakkame jälle nimetama seda andmetöötluseks.
FPGA integreerimiseks andmekeskustesse on vajalik mõtteviisi muutmine. "Mõeldes tänaste rakenduste kiirendamise võimalustele, tuleb süveneda põhialustesse, kuidas need teostatakse, milliseid ressursse kasutatakse ja aega, millele see kulub," selgitab Bolsens. "Tuleb uurida üldist probleemi, mida proovite lahendada. Paljud tänapäeval andmekeskustes töötavad rakendused skaleeruvad, haarates suurt hulka ressursse. Võtame näiteks masinõppe, mis kasutab tohutult arvutusvõimsust. Kuid kiirendamise puhul tuleb mõelda mitte ainult arvutuste kiirusel, vaid ka infrastruktuuri kiirusel."
Näiteks masinõppega seotud toimingutes, mida Bolsens praktikas uuris, kulub umbes 50% ajast andmete edastamiseks edasi-tagasi hajutatud arvutusvõimsuste vahel ning ainult ülejäänud osa aega kulub arvutustele endale.
«Justo siin, arvan ma, võiks FPGA aidata, kuna saame optimeerida nii arvutusprotsesse kui ka andmete edastamise aspekte rakenduses. Ja me saame seda teha nii üldise taristutasandi kui ka kiibitöötluse tasandil. See on üks suurtest eelistest, mida FPGA pakub, võimaldades luua sidevõrke, mis on kohandatud konkreetse rakenduse vajadustele. Vaadates tavapäraseid andmevooge, mis on seotud tehisintellekti ülesannetega, ei näe ma vajadust keeruka lülitusarhitektuuri järele. Saame luua võrgu, mis talub suurt andmevoogu. Sama kehtib ka närvivõrkude koolitamise ülesannete puhul – saame ehitada võrgusilma, mille paketid kohanduvad vastavalt konkreetsele ülesandele. FPGA-de kasutamisel on võimalik protokolle ja skeemi topoloogiat väga täpselt skaleerida ja kohandada vastavalt konkreetsele rakendusele. Ja masinõppimise korral on samuti selge, et meil ei ole vaja kahekordse täpsusega ujuvaid komasid, ja seda saame samuti kohandada.»
FPGA ja CPU või spetsialiseeritud ASIC vahe seisneb selles, et viimased programmeeritakse tootmise käigus ja pärast seda ei saa te enam otsustada, milliseid arvutatud andmeid või arvutuskomponente kasutada, ega ka andmete voolu olemust seadmes. FPGA-d annavad teile võimaluse muuta arvamust, kui töötingimused muutuvad.
Varem oli see eelis kulukas, kuna FPGA-de programmeerimine ei olnud nõrganärvilistele mõeldud. Selleks on vaja avada FPGA-de kompilaatorid, et need paremini integreeruksid tööriistadega, mida programmeerijad kasutavad paralleelsete arvutuste rakenduste loomiseks C, C++ või Python keeles, ning anda osa tööst raamatukogudele, mis kiirendavad FPGA protseduure. Just seda teeb masinõppe Vitis stack, mis on aluseks sellistele MO platvormidele nagu Caffe ja TensorFlow, ning sisaldab raamatukogusid tavapäraste AI-mudelite käitamiseks või FPGA võimaluste lisamiseks sellistele ülesannetele nagu video dekodeerimine, objektide tuvastamine videos, andmeanalüüs, rahariskide haldamine ja igasugused kolmandate osapoolte raamatukogud.
See kontseptsioon ei erine palju Nvidia CUDA projektist, mis käivitati kümme aastat tagasi ja suunab paralleelsed arvutused GPU-kiirenditele, samuti AMD ROCm tööriistakomplektist või Intel'i OneAPI projektist, mis peaks töötama erinevates CPU-des, GPU-des ja FPGA-des.
Küsimus on vaid selles, kuidas kõik need tööriistad omavahel seotud on, et igaüks saaks programmeerida arvestusvõimsuste komplekti vastavalt oma soovile. See on oluline, kuna FPGA-d on muutunud keerukamaks, oluliselt keerukamaks kui ükski olemasolev CPU. Need valmistatakse kõige arenenumate tootmisprotsesside ja kõige kaasaegsema kiipide pakendamistehnoloogiaga. Ja nad leiavad oma niši, kuna me ei saa enam aega, raha, energiat ja intelligentsi raisata – need on kõik liiga kallid ressursid.
«FPGA pakub tehnoloogilisi eeliseid,» ütleb Bolsens. «Ja see ei ole lihtsalt tavaline reklaam kohandatavuse ja ümberkonfigureeritavuse kohta. Kõigis olulistes rakendustes – masinõppes, graafianalüüsis, kõrge sagedusega kauplemises jne – on neil võimalus kohandada mitte ainult andmete edastamise teed, vaid ka mälu arhitektuuri – kuidas andmed liiguvad kiibi sees. FPGA-del on ka palju rohkem mälu kui teistel seadmetel. Tuleb ka märkida, et kui ülesanne ei mahu ühte FPGA sisse, saab seda skaleerida mitme kiibi peale, vältides samas neid puudusi, mis ootavad teid ülesannete skaleerimisel mitme CPU või GPU peale.»
Allikas: habr.com
