Деректер орталықтарына FPGA енуінің сөзсіздігі

Деректер орталықтарына FPGA енуінің сөзсіздігі
Java тілінде код жазу үшін C++ бағдарламашысы болудың қажеті жоқ сияқты, FPGA үшін бағдарламалау үшін чип дизайнері болудың қажеті жоқ. Дегенмен, екі жағдайда да пайдалы болуы мүмкін.

Java және FPGA технологияларын коммерцияландырудың мақсаты соңғы мәлімдемені жоққа шығару болып табылады. FPGA үшін жақсы жаңалық – бағдарламаланатын логикалық құрылғыны ойлап тапқаннан бері соңғы 35 жыл ішінде дұрыс абстракциялық қабаттар мен құралдар жиынтығын пайдалану, процессорлар, DSP, GPU немесе кез келген басқа пайдаланушы ASIC нысандарының орнына FPGA үшін алгоритмдер мен деректер ағындарын жасау айналды. барған сайын жиі кездеседі. оңайырақ.

Оларды жасаудың таңғажайып уақтылығы процессорлар бұдан былай көптеген тапсырмаларды орындау үшін деректер орталықтарының жалғыз есептеу модулі болып қала алмаған кезде - әртүрлі себептерге байланысты - FPGA жылдамдығы, төмен кідіріс, желі мүмкіндіктерін ұсына отырып, олардың тиімділігіне қол жеткізгенінен көрінеді. және жады – толыққанды дерлік есептеу жүйелері болып табылатын қазіргі заманғы FPGA SoC құрылғыларының гетерогенді есептеу мүмкіндіктері. Дегенмен, FPGA гибридті жүйелердегі басқа құрылғылармен де сәтті біріктірілген және біздің ойымызша, олар есептеу иерархиясында өздерінің лайықты орнын енді таба бастады.

Сондықтан біз 22 қаңтарда Сан-Хоседе The Next FPGA Platform конференциясын ұйымдастырдық. Әрине, әлемдегі негізгі FPGA жеткізушілерінің бірі және осы саладағы пионер - Xilinx. Xilinx компаниясының аға вице-президенті және бас технологиялық директоры Иво Болсенс конференцияда сөз сөйлеп, бүгін Xilinx деректер орталықтары үшін өзгермелі есептеу жүйелерін құруға қалай көмектесетіні туралы өз ойларын айтты.

Жүйе сәулетшілері мен бағдарламашыларына есептеу, сақтау және желілік байланыс мәселелерін шешетін компьютерлік қуаттың әртүрлі түрлері болатын гетерогенді деректер орталығын ойлап табу үшін көп уақыт қажет болды. Бұл әртүрлі CMOS құрылғыларын пайдалана отырып, Мур заңын орындау қиындап бара жатқандықтан қажет болып көрінеді. Әзірге біздің тіліміз әлі де CPU-орталық болып табылады және біз әлі де «қолданбаларды жеделдету» туралы айтамыз, яғни бағдарламаларды тек процессорларда істеуге болатыннан жақсырақ жұмыс істейді. Уақыт өте келе деректер орталықтары барлығын біріктіретін есептеу қуатының, деректерді сақтаудың және хаттамалардың жинақтарына айналады және біз «есептеу» және «қолданбалар» сияқты терминдерге қайта ораламыз. Гибридті есептеулер жұмыс үстелінде немесе виртуалды машиналарда жұмыс істейтін бүгінгі бұлттық қызметтер сияқты қалыпты болады және олардың қалай жұмыс істейтінін сипаттау үшін бір сәтте біз жай ғана «есептеу» сөзін қолданамыз. Бір сәтте - және FPGA осы дәуірді бастауға көмектесетін шығар - біз оны қайтадан деректерді өңдеу деп атаймыз.

Деректер орталықтарында FPGA қабылдау сананы өзгертуді талап етеді. «Бүгінгі қолданбаларды жылдамдату жолдарын ойластырған кезде, олардың қалай жұмыс істейтіні, қандай ресурстар пайдаланылатыны, уақыттың қайда жұмсалатыны туралы негіздерге түсу керек», - деп түсіндіреді Болсенс. – Сіз шешуге тырысып жатқан жалпы мәселені зерттеуіңіз керек. Деректер орталықтарында жұмыс істейтін көптеген қолданбалар бүгінде ресурстардың үлкен көлемін тұтыну үшін масштабталады. Мысалы, көптеген есептеу түйіндерін пайдаланатын машиналық оқытуды алайық. Бірақ біз жеделдету туралы айтатын болсақ, біз тек есептеуді тездету туралы ғана емес, сонымен қатар инфрақұрылымды жеделдету туралы да ойлануымыз керек ».

Мысалы, Болсенс тәжірибеде зерттеген машиналық оқыту операцияларында уақыттың шамамен 50% дисперсті есептеу қуаты арасында деректерді алға-артқа тасымалдауға жұмсалады, ал қалған жартысы ғана есептеулердің өздеріне жұмсалады.

«Бұл жерде FPGA көмектесе алады деп ойлаймын, өйткені біз қолданбаның есептеу және коммуникациялық аспектілерінің оңтайландырылғанын қамтамасыз ете аламыз. Біз мұны жалпы инфрақұрылым деңгейінде және чип деңгейінде жасай аламыз. Бұл нақты қолданбалы қажеттіліктер үшін байланыс желілерін құруға мүмкіндік беретін FPGAs үлкен артықшылықтарының бірі. AI жұмыс жүктемелеріндегі деректер қозғалысының әдеттегі үлгілеріне сүйене отырып, мен коммутаторға негізделген күрделі архитектураның қажеттілігін көрмеймін. Үлкен деректер ағыны бар желіні құруға болады. Бұл нейрондық желіні оқыту тапсырмаларына да қатысты - сіз белгілі бір тапсырмаға бейімделетін пакет өлшемдері бар тор желісін құра аласыз. FPGA көмегімен деректерді тасымалдау протоколдары мен схема топологиялары өте дәл масштабталады және нақты қолданбаға бейімделуі мүмкін. Сондай-ақ, машиналық оқыту жағдайында бізге екі дәлдіктегі өзгермелі нүкте сандары қажет емес екені анық және біз оны да реттей аламыз ».

FPGA мен процессордың немесе реттелетін ASIC арасындағы айырмашылық мынада: соңғысы зауытта бағдарламаланады, содан кейін есептелетін деректер түрлері немесе есептелетін элементтер туралы немесе деректердің сипаты туралы ойыңызды өзгерте алмайсыз. құрылғы арқылы өтеді. FPGA жұмыс жағдайлары өзгерсе, ойыңызды өзгертуге мүмкіндік береді.

Бұрын бұл артықшылық өте қымбат болды, бұл кезде FPGA бағдарламалау жүрек әлсіздігі үшін емес еді. Бағдарламашылар C, C++ немесе Python тілдерінде процессорға параллельді қосымшаларды жазу үшін пайдаланатын құралдармен жақсырақ интеграциялану үшін FPGA компиляторларын ашу және кейбір жұмыстарды FPGA процедураларын жылдамдататын кітапханаларға беру қажет. Кәдімгі AI үлгілерін іске қосуға арналған кітапханалары бар немесе бейнені қайта кодтау, бейне нысанды тану және деректерді талдау сияқты тапсырмаларға FPGA мүмкіндіктерін қосатын Caffe және TensorFlow сияқты ML платформаларын қуаттандыратын Vitis машиналық оқыту стегі осылай жасайды. , қаржылық тәуекелдерді басқару және кез келген үшінші - кешкі кітапханалар.

Бұл концепция Nvidia компаниясының он жыл бұрын іске қосылған CUDA жобасынан айырмашылығы жоқ, ол параллельді есептеулерді GPU үдеткіштеріне жүктейді немесе AMD ROCm құралдар жинағынан немесе әртүрлі CPU, GPU және FPGA-да жұмыс істеуі керек Intel OneAPI жобасының уәдесінен.

Жалғыз сұрақ - кез келген адам есептеуіш қуаттар жинағын өз қалауы бойынша бағдарламалай алатындай барлық осы құралдар қалай біріктіріледі. Бұл маңызды, өйткені FPGA қол жетімді процессорлардың кез келгеніне қарағанда күрделірек, әлдеқайда күрделі болды. Олар ең озық өндірістік процестерді және ең заманауи чиптерді орау технологияларын қолдану арқылы шығарылады. Және олар өз орнын табады, өйткені біз енді уақытты, ақшаны, энергияны және интеллектті босқа жұмсай алмаймыз - мұның бәрі тым қымбат ресурстар.

«FPGAs технологиялық артықшылықтарды ұсынады», - дейді Болсенс. – Бұл бейімделу және қайта конфигурациялау туралы әдеттегі жарнама ғана емес. Барлық маңызды қолданбаларда - машиналық оқыту, графикалық талдау, жоғары жылдамдықты сауда және т.б. - оларда деректерді тарату жолымен ғана емес, сонымен қатар жад архитектурасы - деректердің чип ішінде қалай қозғалатынын белгілі бір тапсырмаға бейімделу мүмкіндігі бар. FPGA-да басқа құрылғыларға қарағанда әлдеқайда көп жады бар. Сондай-ақ, егер тапсырма бір FPGA-ға сәйкес келмесе, тапсырмаларды бірнеше процессорлар немесе графикалық процессорлар арқылы масштабтау кезінде сізді күтетін кемшіліктерге тап болмай, оны бірнеше чиптер бойынша масштабтауға болатынын ескеру қажет.

Ақпарат көзі: www.habr.com

пікір қалдыру