FPGA iespiešanās datu centros neizbēgamība

FPGA iespiešanās datu centros neizbēgamība
Jums nav jābūt mikroshēmu izstrādātājam, lai programmētu FPGA, tāpat kā jums nav jābūt C++ programmētājam, lai rakstītu kodu Java. Tomēr abos gadījumos tas, iespējams, noderēs.

Gan Java, gan FPGA tehnoloģiju komercializācijas mērķis ir atspēkot pēdējo apgalvojumu. Labas ziņas FPGA — izmantojot pareizos abstrakcijas slāņus un rīku kopu, pēdējo 35 gadu laikā kopš programmējamās loģiskās ierīces izgudrošanas ir kļuvusi algoritmu un datu plūsmu izveide FPGA, nevis CPU, DSP, GPU vai jebkura cita veida pielāgotu ASIC. arvien biežāk.vieglāk.

To izveides pārsteidzošais savlaicīgums ir acīmredzams faktā, ka tieši tad, kad CPU vairs nevarēja palikt vienīgais datu centru skaitļošanas modulis daudzu uzdevumu veikšanai – dažādu iemeslu dēļ – FPGA sasniedza savu efektivitāti, piedāvājot ātrumu, zemu latentumu un tīkla iespējas. un atmiņa - mūsdienu FPGA SoC neviendabīgas skaitļošanas iespējas, kas ir gandrīz pilnvērtīgas skaitļošanas sistēmas. Tomēr FPGA veiksmīgi tiek kombinēti arī ar citām ierīcēm hibrīdsistēmās, un, mūsuprāt, tās tikai sāk atrast savu īsto vietu skaitļošanas hierarhijā.

Tāpēc mēs organizējām The Next FPGA Platform konferenci Sanhosē 22. janvārī. Protams, viens no galvenajiem FPGA piegādātājiem pasaulē un pionieris šajā jomā ir Xilinx. Ivo Bolsens, Xilinx vecākais viceprezidents un galvenais tehnoloģiju speciālists, uzstājās konferencē un šodien sniedza mums savas domas par to, kā Xilinx palīdz radīt maināmas skaitļošanas sistēmas datu centriem.

Sistēmu arhitektiem un programmētājiem bija vajadzīgs daudz laika, lai izstrādātu neviendabīgu datu centru, kurā būs dažāda veida datora jauda, ​​kas atrisina problēmas skaitļošanas, uzglabāšanas un tīklu veidošanā. Tas šķiet nepieciešams, jo kļūst arvien grūtāk ievērot Mūra likumu, izmantojot dažādas CMOS ierīces. Pagaidām mūsu valoda joprojām ir vērsta uz centrālo procesoru, un mēs joprojām runājam par “lietojumprogrammu paātrināšanu”, kas nozīmē, ka programmas darbojas labāk nekā tas, ko var paveikt tikai ar CPU. Laika gaitā datu centri kļūs par skaitļošanas jaudas, datu krātuves un protokolu kolekcijām, kas visu saista kopā, un mēs atgriezīsimies pie tādiem terminiem kā “skaitļošana” un “lietojumprogrammas”. Hibrīddatošana kļūs tikpat normāla kā mūsdienu mākoņpakalpojumi, kas darbojas galddatoros vai virtuālajās mašīnās, un kādā brīdī mēs vienkārši izmantosim vārdu "skaitļošana", lai aprakstītu to darbību. Kādā brīdī — un visticamāk, ka FPGA palīdzēs uzsākt šo laikmetu — mēs to atkal sauksim par datu apstrādi.

Lai pieņemtu FPGA datu centros, būs jāmaina domāšana. "Domājot par veidiem, kā paātrināt mūsdienu lietojumprogrammas, jums ir jāiepazīstas ar to darbības pamatiem, kādi resursi tiek izmantoti un kur tiek pavadīts laiks," skaidro Bolsens. – Jums ir jāizpēta vispārējā problēma, kuru mēģināt atrisināt. Daudzas lietojumprogrammas, kas šodien darbojas datu centros, patērē lielu daudzumu resursu. Ņemiet, piemēram, mašīnmācīšanos, kas izmanto milzīgu skaitu skaitļošanas mezglu. Bet, kad mēs runājam par paātrinājumu, mums ir jādomā ne tikai par skaitļošanas paātrināšanu, bet arī par infrastruktūras paātrināšanu.

Piemēram, tādās mašīnmācīšanās operācijās, kuras Bolsens pētīja praksē, aptuveni 50% laika tiek pavadīts datu pārsūtīšanai uz priekšu un atpakaļ starp izkliedētu skaitļošanas jaudu, un tikai atlikušā puse laika tiek veltīta pašiem aprēķiniem.

"Es domāju, ka šeit var palīdzēt FPGA, jo mēs varam nodrošināt, ka tiek optimizēti gan lietojumprogrammas skaitļošanas, gan komunikācijas aspekti. Un mēs to varam izdarīt vispārējā infrastruktūras līmenī un mikroshēmu līmenī. Šī ir viena no lielajām FPGA priekšrocībām, kas ļauj izveidot sakaru tīklus konkrētām lietojumprogrammu vajadzībām. Pamatojoties uz tipiskiem datu kustības modeļiem AI darba slodzēs, es neredzu vajadzību pēc sarežģītas, uz slēdžiem balstītas arhitektūras. Varat izveidot tīklu ar lielu datu plūsmu. Tas pats attiecas uz neironu tīklu apmācības uzdevumiem - jūs varat izveidot tīkla tīklu ar pakešu izmēriem, kas pielāgojas konkrētam uzdevumam. Izmantojot FPGA, datu pārraides protokolus un ķēžu topoloģijas var ļoti precīzi mērogot un pielāgot konkrētai lietojumprogrammai. Un mašīnmācības gadījumā ir arī skaidrs, ka mums nav vajadzīgi dubultas precizitātes peldošā komata skaitļi, un mēs varam arī to pielāgot.

Atšķirība starp FPGA un CPU vai pielāgotu ASIC ir tāda, ka pēdējie ir ieprogrammēti rūpnīcā, un pēc tam jūs vairs nevarat mainīt savas domas par aprēķināmo datu veidiem vai elementiem, kas tiek aprēķināti, vai par datu raksturu. plūst caur ierīci. FPGA ļauj mainīt domas, ja mainās darbības apstākļi.

Agrāk šī priekšrocība bija par maksu, kad FPGA programmēšana nebija paredzēta vājprātīgajiem. Nepieciešams atvērt FPGA kompilatorus, lai tie labāk integrētos ar rīkiem, ko programmētāji izmanto, lai rakstītu CPU paralēlās lietojumprogrammas C, C++ vai Python valodā, un daļu darba uzticēt bibliotēkām, kas paātrina FPGA procedūras. Tas ir tas, ko dara Vitis mašīnmācīšanās steks, darbinot ML platformas, piemēram, Caffe un TensorFlow, ar bibliotēkām tradicionālo AI modeļu darbināšanai vai FPGA iespēju pievienošanai tādiem uzdevumiem kā video pārkodēšana, video objektu atpazīšana un datu analīze. , finanšu riska pārvaldība un jebkura trešā daļa. -partiju bibliotēkas.

Šī koncepcija daudz neatšķiras no Nvidia CUDA projekta, kas tika uzsākts pirms desmit gadiem, kas izkrauj paralēlo skaitļošanu uz GPU paātrinātājiem, vai no AMD ROCm rīkkopas, vai no solītā Intel OneAPI projekta, kuram vajadzētu darboties dažādos CPU, GPU un FPGA.

Jautājums ir tikai par to, kā visi šie rīki tiks savienoti kopā, lai jebkura persona varētu ieprogrammēt skaitļošanas jaudu kopumu pēc saviem ieskatiem. Tas ir svarīgi, jo FPGA ir kļuvuši sarežģītāki, daudz sarežģītāki nekā jebkurš no pieejamajiem CPU. Tie tiek ražoti, izmantojot vismodernākos ražošanas procesus un modernākās skaidu iepakošanas tehnoloģijas. Un viņi atradīs savu nišu, jo mēs vairs nevaram tērēt laiku, naudu, enerģiju un inteliģenci - tie visi ir pārāk dārgi resursi.

"FPGA piedāvā tehnoloģiskas priekšrocības," saka Bolsens. – Un šī nav tikai parastā reklāma par pielāgojamību un pārkonfigurējamību. Visās svarīgajās lietojumprogrammās - mašīnmācībā, grafiku analīzē, ātrgaitas tirdzniecībā utt. - tiem ir iespēja pielāgot konkrētam uzdevumam ne tikai datu izplatīšanas ceļu, bet arī atmiņas arhitektūru - kā dati pārvietojas mikroshēmā. FPGA ir arī iebūvēta daudz vairāk atmiņas nekā citās ierīcēs. Jāņem vērā arī tas, ka, ja uzdevums neietilpst vienā FPGA, varat to mērogot vairākās mikroshēmās, nesaskaroties ar trūkumiem, kas jūs sagaida, mērogojot uzdevumus vairākos CPU vai GPU.

Avots: www.habr.com

Pievieno komentāru