Дълбок анализ

Въведение

Платформата за програмиране CUDA на Nvidia и софтуерната екосистема дадоха на компанията монопол в GPU изчисленията с общо предназначение, особено за ускоряване на натоварването на машинното обучение. Тази статия предоставя задълбочен анализ на начина, по който Nvidia е постигнала своята доминираща позиция, последиците от нейното удушаване на пазара, възникващите заплахи и бъдещите перспективи за по-голяма конкуренция в пространството.

Възходът на CUDA

Стартирала през 2007 г., CUDA (Compute Unified Device Architecture) позволява на разработчиците да използват възможностите за паралелна обработка на графичните процесори на Nvidia за неграфични натоварвания, използвайки C/C++. CUDA осигурява хардуерен достъп на ниско ниво, като същевременно абстрахира сложните подробности за драйвера чрез ясен API.

Предимството на Nvidia в началото на движението със зряла платформа за програмиране на GPU като CUDA перфектно позиционира компанията да доминира, тъй като дълбокото обучение започна да процъфтява години по-късно. Изследователите на AI бързо гравитираха към графичните процесори на Nvidia, като се има предвид тяхното ускоряване от порядъка на големината спрямо процесорите за обучение на невронни мрежи. Масивният паралелизъм на графичните процесори беше идеалното съвпадение за ускоряване на интензивните математически матрични изчисления, включени в дълбокото обучение.

За разлика от нишовите академични езици като OpenCL, които са насочени към високопроизводителни изчисления, CUDA е разработен от самото начало, за да бъде достъпен за широка аудитория от разработчици. Nvidia инвестира сериозно в библиотеки като cuDNN за дълбоко обучение, cuBLAS за линейна алгебра, cuFFT за FFT и т.н., за да ускори различни домейни.

Патентованият характер на CUDA позволи на Nvidia непрекъснато да я оптимизира през годините за своите развиващи се GPU архитектури, без да споделя прозрения с конкурентите. Това доведе до много по-добро повишаване на производителността и ефективността на CUDA приложенията на хардуера на Nvidia в сравнение с неутралните по отношение на доставчика решения като OpenCL.

CUDA става повсеместен в Deep Learning

По времето, когато дълбокото обучение започна да получава широко разпространение след 2012 г. за задачи като класификация на изображения и разпознаване на реч, CUDA вече се е превърнала в зряла платформа, изпитана в битки. Обширните инструменти и библиотеки, изградени върху CUDA от Nvidia, позволиха на изследователите да бъдат високо продуктивни.

Като се има предвид тази ранна зрялост, всички основни рамки за дълбоко обучение като TensorFlow, PyTorch, Caffe, Theano и MXNet добавиха вградена поддръжка за CUDA GPU ускорение в началото. CUDA предостави най-стабилния път за отключване на изчислителната мощност на GPU.

Това създаде самоподсилващ се благоприятен цикъл — CUDA се превърна в стандартен начин за достъп до GPU ускорение поради своята популярност и поддръжка в различни рамки и рамки, съобразени с него поради голямото търсене от страна на потребителите. С течение на времето програмната парадигма и стек на CUDA станаха дълбоко вградени във всички аспекти на AI екосистемата.

Повечето академични статии, обясняващи нови иновации в невронните мрежи, използваха CUDA ускорение по подразбиране, когато демонстрираха експерименти с графични процесори. Това всеобщо приемане допълнително затвърди господството на CUDA в прохождащата общност за дълбоко обучение.

Трудността при изместването на CUDA

Опитите на конкуренти, включително AMD с MIOpen и Intel с oneAPI, да предложат алтернативни платформи за програмиране на GPU, до голяма степен се провалиха. Докато неутралните по отношение на доставчиците рамки като OpenCL обещаваха междуплатформена преносимост на хартия, им липсваха зрели софтуерни екосистеми и имаха тенденция да се представят по-слабо от CUDA в приложения в реалния свят.

Тези алтернативи също страдаха от проблеми с кокошката и яйцето — ограничено приемане поради пропуски в инструментите/поддръжката в сравнение с CUDA и пропуски, които продължаваха, защото ограничената потребителска база не успя да валидира платформите в мащаб и да мотивира адекватни инвестиции.

Десетилетията на начален старт за CUDA означаваха, че се възползва от силни мрежови ефекти - голямата му инсталационна база мотивира рамки и разработчици да се насочат към него, което от своя страна доведе до приемането му от повече потребители. Успешното преодоляване на тази инерция изисква не само паритет на производителността, но решително предимство от порядък на величина пред статуквото. Това се оказа непостижима цел.

Отразявайки това утвърждаване, графичните процесори на Nvidia представляват над 90% от TPUv2 инфраструктурата на Google през 2018 г., годината, в която беше представена. Дори технологични гиганти като Google с ресурси да инвестират в персонализирани ASIC откриха, че пълната замяна на CUDA е трудна.

Фактори, запазващи доминирането на CUDA

Има няколко фактора, които помогнаха да се запази доминацията на CUDA през годините въпреки периодичните цикли на реклама около потенциални алтернативи:

1. Непрестанният фокус на Nvidia върху разширяването на възможностите и библиотеките на CUDA като cuDNN, NCCL, DALI и т.н., съобразени с работните натоварвания на AI.

2. Тясно сътрудничество с изследователи и организации като U Berkeley и Facebook за оптимизиране на популярни модели на CUDA.

3. Интеграция с всички основни рамки за дълбоко обучение като TensorFlow, PyTorch, MXNet, Caffe и т.н.

4. Трудността при пренасяне на сложни кодови бази на невронни мрежи от CUDA към различни програмни парадигми.

5. Избягване на риска на корпоративните купувачи, по-удобни с установената технология.

6. Мързел — като се има предвид, че CUDA работи достатъчно добре, инерцията предотвратява смислената оценка на алтернативите.

7. Липса на конкурентен пазарен натиск за налагане на инвестиции в преносимост и стандарти.

8. Сложността на координирането на множество играчи в стека (облак, рамки, компилатори и т.н.) за масово приемане на нови технологии.

9. Гъвкавостта на платформата на CUDA, обхващаща център за данни, настолна работна станция, лаптоп и дори вградени внедрявания.

Тези фактори защитиха доминиращата позиция на Nvidia през годините въпреки случайните шумове около слуховете за „CUDA-убийци“. Въпреки това, гледайки напред, слабостите започват да се появяват в бронята на Nvidia, дори ако значимата промяна ще отнеме време.

Появяват се пукнатини в бронята на Nvidia

Въпреки господството си, в бронята на CUDA започнаха да се появяват пукнатини, които намекват за уязвимост. Някои признаци, че хватката на CUDA върху дълбокото обучение може да бъде застрашена:

1. Основните рамки като PyTorch и TensorFlow вече поддържат бекенд на ускорителя, който може да превключва между CUDA и алтернативи като ROCm.

2. Повишено приемане на платформено-агностични междинни продукти като ONNX, които работят в задните части.

3. Първокласни облачни инстанции, изградени на хардуер на AMD и Intel, които се разпродават бързо, недостатъчно използван капацитет.

4. Стекове компилатори с отворен код, неутрални спрямо доставчика като LLVM, TVM набират популярност.

5. Google си сътрудничи с AMD за подобряване на поддръжката на ROCm в TensorFlow като защита срещу Nvidia.

6. Microsoft пуска оптимизирани за Intel и AMD версии на DeepSpeed, търсейки хардуерно разнообразие.

7. Разширения PyTorch с отворен код на Facebook, които създадоха, за да мащабират натоварванията между GPU.

8. Стартъпи като CoreWeave печелят милиарди, осигурявайки облачен достъп до хардуер на AMD, сигнализирайки за неизползвано търсене.

9. Intel инвестира сериозно в поддръжка на oneAPI за рамки за дълбоко обучение като надеждна алтернатива на CUDA.

10. Графичните процесори на AMD съперничат на Nvidia в бенчмаркове за изводи, ефективност на обучение, HPC и честотна лента на паметта.

11. Apple демонстрира подобрения в производителността в реалния свят с M1 графични процесори, конкурентни на мобилните чипове на Nvidia, изградени върху кросплатформен Metal API.

12. OSS общности, възникващи около PyTorch и TensorFlow, които дават приоритет на оптимизацията на рамката пред хардуерното заключване.

13. Lambda Labs и други стартиращи фирми, използващи облачни платформи, за да предложат достъп до стотици графични процесори на AMD за дълбоко обучение, подхранвайки по-нататъшното съзряване на екосистемата.

14. JAX екосистема, демонстрираща рамки, изградени от основи за преносимост на ускорителя, които отговарят на ръчно настроената производителност на CUDA.

15. Език Julia, популяризиращ модели за програмиране на графични процесори, зависими от ускорителя, които могат да използват различен хардуер.

16. C++ бекенд за PyTorch, позволяващ поддръжка без CUDA за хардуер на AMD и Intel.

17. OpenAI инвестира сериозно в слоеве за преносимост на CUDA/ROCm като Triton, за да намали зависимостта от Nvidia.

18. Ръст на търсенето на блокчейн изчисления извън игрите, разкривайки неизползван потенциал за продажбите на AMD и Intel GPU.

19. Intel се зарича да инвестира всичко необходимо за десетилетие, за да превърне oneAPI в надеждна алтернатива на CUDA след провалите на OpenCL.

20. Microsoft Azure визуализира инфраструктура за машинно обучение, независима от ускорителя, позволяваща лесно превключване между AMD/Nvidia GPU.

Тези нарастващи доказателства сочат, че докато оспорването на господството на CUDA може да отнеме много години, конкуренцията вероятно стеснява рововете на Nvidia по-бързо, отколкото се оценява от индустрията.

Поддръжка на PyTorch за графични процесори AMD

Ключово развитие, което сигнализира за намалена зависимост на рамката от CUDA, е естествената поддръжка на AMD GPU, която пристига в PyTorch.

През септември 2021 г. общността с отворен код на PyTorch въведе първоначална собствена интеграция на AMD GPU, използвайки HIP компилатора с отворен код за преобразуване на CUDA код, за да се изпълнява естествено на хардуер на AMD. Въпреки че все още е експериментален, това позволява на PyTorch да се изпълнява на AMD ROCm GPU без CUDA като посредник.

Microsoft отиде крачка напред през декември 2022 г., като пусна готово за производство C++ разширение за PyTorch, което поддържа AMD графични процесори, използвайки техния ROCm бекенд. Най-важното е, че това позволява обучение на популярни модели като BERT и GPT Neo на хардуер на AMD без промени в изходния код, само чрез насочване към нов двоичен файл на PyTorch.

Липсата на проста, производителна преносимост е силно ограничила приемането на AMD GPU в дълбокото обучение в исторически план. Чрез включването на първокласна поддръжка на ниво рамка, PyTorch премахва един от основните бастиони, защитаващи господството на Nvidia.

Общността на PyTorch наскоро предприе и други стъпки за намаляване на блокирането на CUDA. Те пуснаха оптимизации като Layer-wise Adaptive Rate Scaling (LARS), които подобряват ефективността на обучението на големи клъстери от GPU. Такива функции позволяват мащабиране на работните натоварвания за дълбоко обучение в разнообразен хардуер.

Те също така добавиха унифициран разпределител на памет в PyTorch 1.11, позволяващ алтернативни реализации на пул памет, съобразени с конкретен хардуер. Това подобрява производителността на AMD GPU и Apple M1 чипове с обединена памет.

Освен това, PyTorch 1.5 въведе бекенд за изпълнение в графичен режим, който намалява използването на паметта и ускорява изводите чрез кеширане на изчисленията. Това помага на работните потоци на хардуер, различен от Nvidia, с по-малко щедър капацитет на паметта, като интегрирани графични процесори на Intel и бюджетни AMD карти.

Въпреки че паритетът на производителността на графичния процесор остава предизвикателство, все по-платформено агностичният дизайн на PyTorch полага основата, за да превърне не-CUDA ускорения хардуер в първокласен гражданин. Ако това узрее, това може да има дълбоки последици върху баланса на силите в хардуера за дълбоко обучение.

Triton — Офертата на OpenAI за комерсиализиране на AI Compute

В своята мисия за демократизиране на изкуствения интелект, OpenAI призна, че текущото разчитане на собствени библиотеки CUDA възпрепятства отвореността и представлява риск за целта им за широко разпространение на способностите на AI.

За да преодолеят това, те инвестират сериозно в проект с отворен код, наречен Triton, който има за цел да превърне в стока AI изчисленията. Целта на Triton е да позволи на разработчиците да постигнат страхотна производителност на различни хардуерни платформи, използвайки изцяло отворен код.

Triton е базиран на Python междинен компилатор, който преобразува модели, написани в рамки като PyTorch, в междинно представяне (IR), което след това може да бъде понижено във високо оптимизиран код за графични процесори на Nvidia и AMD. Този IR служи като хардуерно-агностичен слой за конвергенция, който скрива разликите в чиповете.

Най-важното е, че изходните данни на компилатора Triton могат да се насочат към AMD ROCm също толкова ефективно, колкото Nvidia CUDA, без да изискват частни библиотеки като cuDNN. Това осигурява надежден път с отворен код към преносима производителност в различни GPU.

Triton предоставя оптимизации, специално насочени към големи езикови модели, които са фокусът на OpenAI. Техники като сливане на трансформаторно ядро, оптимизиране на тензорното съхранение и ефективно паралелно намаляване спомагат за подобряване на пропускателната способност и по-ниски натиск върху честотната лента на паметта по време на извод – слабости на традиционните графични процесори.

Чрез елиминиране на собствените пречки, Triton отваря възможности за преносимост на производителността между доставчици. Потребителите могат да обучават модели на какъвто и да е хардуер, с който разполагат, с минимално увреждане на производителността при превключване. Това противодейства на инерцията, която може да се развие около това кодът да работи добре само на една платформа.

Въпреки че все още е в ранните си етапи, Triton представлява важен крайъгълен камък, който сочи към демократизацията и комодификацията на изчисленията с ИИ. Неговото продължаващо съзряване би могло да осигури неутрална по отношение на доставчика насока за нововъзникващите доставчици на хардуер, за да получат сцепление около отворен стек, оптимизиран за натоварвания от следващо поколение.

Сътрудничеството на AMD разширява ROCm екосистемата

Въпреки че исторически се възприема като изостанал в пространството за задълбочено обучение, AMD инвестира значително през последните години, за да разшири софтуерната поддръжка и приемането на своята ROCm хетерогенна изчислителна платформа.

Що се отнася до рамките, AMD си сътрудничи с Google, за да добави първоначална поддръжка за своите графични процесори в TensorFlow през 2021 г. Въпреки че не е напълно оптимизирано, това позволява на изследователите да започнат да експериментират с хардуера на AMD в среди на TensorFlow.

Microsoft също така пусна предварителна версия с активирана AMD GPU версия на своя двигател за задълбочено обучение DeepSpeed ​​в края на 2022 г. DeepSpeed ​​осигурява оптимизации като паралелизъм на модела и разпределено обучение, които разширяват достъпността на AMD за големи работни натоварвания на езикови модели.

AMD също работи в тясно сътрудничество с общностите на OSS около PyTorch, Julia и Conda, за да подобри изживяването извън кутията на ROCm. изглаждането на настройката и разширяването на езиковото покритие помагат за привличането на разработчиците да изпробват хардуера на AMD и свързаните вериги от инструменти.

От страна на внедряването, AMD разшири интеграциите с AWS Lambda, Google Cloud Run, Microsoft Azure и други безсървърни платформи, за да оптимизира производителността на изводите на AMD GPU и да подчертае предимството им на икономическа ефективност.

За да повиши ентусиазма около своята екосистема, AMD стартира Deep Learning Community с ресурси и форуми, насочени към специалисти по данни и разработчици на AI. Партньорства като програмата AI Dragons също предоставят практическа подкрепа на изследователите за оптимизиране на код за хардуер на AMD.

И накрая, сътрудничеството с водещи компилатори с отворен код като LLVM, TVM и TensorFlow XLA ще помогне за автоматичен превод на кода на модела, за да работи безпроблемно в архитектурата на AMD. Преносимостта и оптимизациите, базирани на компилатор, имат голямо значение в нововъзникващите хетерогенни среди.

Докато приемането на ROCm остава доста зад CUDA в момента, разширяващите се партньорства на AMD и усилията за изграждане на общност сочат към значим напредък, който може да изплати дивиденти за разнообразието на екосистемите в дългосрочен план.

Амбициите на Intel oneAPI

След неуспех на по-ранни опити като OpenCL, Intel прави още една амбициозна оферта за предоставяне на унифицирана софтуерна платформа чрез oneAPI, която може да обхваща различни доставчици на хардуер и да предлага алтернатива на собствените CUDA библиотеки.

Intel се отдалечава от отделни кодови бази, оптимизирани тясно за всяка от своите продуктови линии като Xeon Phi, Altera FPGA, интегрирани графични процесори и т.н. oneAPI има за цел да обедини унифицирани стекове, езици и инструменти, които взаимодействат гладко в портфолиото на Intel.

Това осигурява естествени рампи за поддръжка на различни доставчици предвид вградената хардуерна абстракция. Intel работи върху интегрирането на популярни рамки за машинно обучение като TensorFlow и PyTorch с поддръжка на oneAPI.

Интегрираната компилаторна рамка на LLVM, лежаща в основата на oneAPI, също така позволява разширяване на поддръжката към различни хардуерни цели като AMD и Arm чипове, осигурявайки механизъм за истинска преносимост на код между платформи.

Функцията ControlFlag на Intel дава прецизен контрол върху оптимизационните компромиси за различни хардуерни комбинации. Разработчиците могат да напишат общ код, след което да посочат кои части да се оптимизират за CPU, GPU, VPU и т.н. по време на компилация.

Чрез консолидиране на преди това разединени усилия под един чадър и извеждане на унифицираното програмиране на преден план, Intel демонстрира стратегически ангажимент към инвестициите, необходими за избягване на инерцията около зависимостта от CUDA.

Въпреки че oneAPI е все още в ранна фаза и е изправен пред огромни предизвикателства за постигане на паритет между показателите, амбициите на Intel подчертават нарастващото осъзнаване, че текущата фрагментация на екосистемата е неоптимална и неутралните спрямо доставчика решения имат недооценено обещание.

Apple M1 Signaling CPU Възраждане

Въпреки че Apple е само една патентована платформа, успехът на нейния M1 SoC сочи към значими възможности от възприемането на интегриран софтуерно-хардуерен подход дори при процесори с общо предназначение.

Унифицираната архитектура на паметта на Apple, обединяваща CPU, GPU и RAM в един пул, е широко полезна за натоварвания на ML. Унифицираната памет значително подобрява ефективността на задачите, свързани с паметта, в сравнение с дискретните GPU архитектури като Nvidia, които изискват отнемащ време трансфер на данни през PCIe.

Графичният процесор M1, изграден с помощта на вътрешния Metal API на Apple, демонстрира значителни подобрения в производителността и ефективността спрямо остарялата интегрирана графика на Intel. За много ML задачи той съответства на специални мобилни графични процесори на Nvidia.

Apple агресивно оптимизира своя невронен двигател и компилатори за дълбоко обучение за архитектурата M1. Като се има предвид неговия контрол върху пълния стек, той може да използва както софтуерните, така и хардуерните подобрения в тандем.

Това подчертава предимствата на вертикалната интеграция и потвърждава непрекъснатите инвестиции в базирани на CPU ускорители за машинно обучение. Въпреки че им липсва грубата производителност на дискретните графични процесори, тясно свързаните процесори на процесора + графичния процесор се отличават с мобилна енергийна ефективност.

Тъй като Intel, AMD и Qualcomm итерират бързо върху високопроизводителни Arm-базирани дизайни, скокът на поколението на Apple с M1 предвещава значителен напредък, премахвайки работните натоварвания на ML от зависимостта единствено от специализирано GPU ускорение.

Очевидното ограничение е, че Apple не лицензира своя IP извън собствените си устройства. Въпреки това, неговата екосистема служи като доказателство за съществуването на това, което е възможно в едно алтернативно бъдеще, което не е ориентирано към CUDA. Той осигурява осезаема точка от данни, която разклаща статуквото предположения за съвместно проектиране на софтуер и хардуер.

OSS общности, даващи приоритет на преносимостта

Общностите с отворен код, които се появяват около проекти като PyTorch, TensorFlow, Julia и JAX, помагат да се задвижи инерцията зад рамки и вериги от инструменти, проектирани отначало за гъвкавост на ускорителя.

Тези общности оценяват преносимостта на производителността между бекендовете по-високо в сравнение със статуквото рамки, които приемат CUDA по подразбиране. Тяхната архитектура и решения за интерфейс въплъщават тази философия в целия стек.

Местата за сътрудничество като PyTorch Lightning наблягат на гъвкавостта и стандартите на рамката. Техните гъвкави модели на управление избягват влиянието на отделния доставчик, доминиращо при вземането на технически решения.

Главните технически директори на стартиращи фирми водят разговори в общността за намаляване на фрагментацията на екосистемата в дългосрочен план, като същевременно поддържат прагматизъм в краткосрочен план. Техните перспективи носят балансирани неутрални спрямо продавача перспективи.

Общностите привличат академични изследователи, изследващи техники като мета-обучение, компилатори и квантуване, които отключват подобрения в производителността на разнообразен хардуер, извън зависимостта от конкретни платформи.

OSS общностите също инвестират в усърдни усилия за сравняване, профилиране и оптимизация за нов хардуер като чипове Apple M1 и AMD GPU. Техните доброволни усилия запълват празнини, които самите продавачи често пренебрегват.

Неутралността и ориентираното към клиентите мислене на масовите общности на разработчиците ги прави инструмент в поддържането на нововъзникващи платформи. Тяхната страст компенсира финансовите стимули на големите корпорации.

Като оценяват избора на модулна архитектура и интерфейс, който предотвратява блокирането на доставчика над индивидуалните продуктови приоритети, общностите с отворен код играят решаваща роля в очертаването на траекторията към преносими екосистеми за дълбоко обучение.

Абстракционни слоеве на облачни платформи

Водещи доставчици на облачни услуги са признали, че улесняването на миграцията между различни хардуерни бекендове е ключово за стимулиране на приемането и избягване на блокирането на доставчика.

TensorFlow Extended (TFX) на Google Cloud позволява на модели, дефинирани веднъж на високо ниво на абстракция, да се компилират и изпълняват на TPU, GPU и CPU хардуер в зависимост от наличността и предпочитанията за цена.

Amazon SageMaker Neo извършва статични оптимизации на обучени модели, за да подобри производителността на флота от хардуер Intel, AMD, Nvidia и AWS Inferentia на SageMaker, предлагайки разнообразни компромиси между цена-производителност-точност.

Microsoft Cognitive Toolkit, ONNX Runtime и WinML гарантират, че моделите могат да се обменят между Intel, AMD, Nvidia и персонализиран FPGA хардуер в рамките на Azure инфраструктура.

Рамки като MLflow и инструменти като Hummingbird опростяват опаковането и внедряването на модели в облачни среди, за да увеличат максимално гъвкавостта, като използват различни хардуерни бекендове, ако е необходимо.

Безсървърни предложения като AWS Lambda, Azure Functions и Google Cloud Run прозрачно избират оптимални цели за изпълнение за моделите и осигуряват автоматично мащабиране въз основа на натоварването.

Тези базирани на облак абстракционни слоеве елиминират голяма част от сложността на превключването между разнообразен хардуер и поставят доставчика на облак в отговорност за управлението на хетерогенността. Това премахва основното триене, което възпира приемането на алтернативи на доминиращи платформи като CUDA.

Чрез ефективно комерсиализиране на основния хардуерен капацитет и излагане на просто по-прости лостове за крайните потребители като нива цена-производителност, облачните платформи помагат да се подкопаят инхибиторите на разнообразието на платформите, които облагодетелстват действащите оператори.

Разбира се, както беше обсъдено по-късно, тази комодификация също така ограничава възможностите за диференциация за доставчиците, които искат да се конкурират с уникални възможности отвъд суровата производителност като нови системи с памет. Но като цяло изглежда, че това е благоприятна тенденция към демократизация и привличане на клиенти.

Гъвкавостта на рамката става наложителна

Друг фактор, който би могъл да отслаби вкоренената зависимост от хардуера, е осъзнаването от страна на доставчиците на рамки, че архитектурната гъвкавост и преносимостта за еднократно писане и стартиране навсякъде ще бъдат конкурентно предимство спрямо оптимизирането само за една платформа.

Рамки като TensorFlow и PyTorch се фокусираха основно върху CUDA оптимизации през последните години предвид търсенето на клиентите. Но те признават, че поддържането на пазарен дял в дългосрочен план изисква архитектурен агностицизъм, за да се адаптира към променящите се хардуерни възможности и предпочитания на клиентите.

Вече техните продуктови пътни карти се привеждат в съответствие около по-модулни времена на изпълнение, взаимозаменяеми библиотеки на оператори и графични представяния, оптимизирани за различни ускорители.

Стартиращите компании, разработващи нови рамки за ефективност, разпределено обучение и т.н., избягват грешките на рамки от миналото поколение, прекалено оптимизирани за конкретен хардуер. Те подчертават преносимите дизайни, които предотвратяват фрагментирането.

Набори от инструменти, които опростяват квантуване, съкращаване и компилиране, помагат за адаптирането на свръхпараметризираните модели, за да работят добре на по-малко способни устройства. Автоматизираното преобразуване на модела разширява обхвата.

Доставчиците на хардуер също разбират необходимостта от привеждане в съответствие с популярните рамки за приемане. Инвестициите, за да се гарантира, че чиповете на AMD, Intel и Arm работят гладко с основни рамки, подобряват доверието.

Тенденцията към стандартизирани интерфейси и междинни представяния, които позволяват реализации на оператори за размяна, подходящи за развиващ се хардуер, изглежда неизбежна предвид натиска, пред който са изправени доставчиците на рамка и ускоряващото разнообразие на хардуера.

Нововъзникващите работни натоварвания разклащат статуквото

Нови работни натоварвания за машинно обучение, като компютърно зрение за роботика, разпознаване на реч на крайни устройства, симулации за откриване на лекарства, видео анализи в мрежи с разпределени камери и моделиране на науката за климата имат изключително разнообразни изчислителни изисквания и модели за достъп до данни.

Съзряването на тези вертикални случаи на употреба създава различни нужди, които все повече се борят да паснат на оптимизационни режими, настроени единствено за обучение на контролирани конволюционни и трансформаторни мрежи върху огромни партиди от изображения и текстови данни, използващи дискретни графични процесори.

Това предоставя възможности за нови архитектури на ускорители от стартиращи фирми и настоящи доставчици на чипове, които правят различните компромиси по-подходящи за възникващи изисквания за работно натоварване, като рядкост, намалена прецизност, паралелизъм на модела и ограничения на латентността.

Но за да получат такива нови ускорители, предположението за доминиране на CUDA, вкоренено в тъканта на съществуващия код, ще трябва да бъде нарушено, за да се отвори пространство за нови подходи. Техният успех налага по-лесна преносимост.

За щастие, има обнадеждаващи признаци за напредък към по-модулно, разнородно бъдеще, както беше обсъдено по-рано. Тези разработки пренасочват влиянието към новите архитектури, които са най-подходящи за променящите се нужди от работно натоварване.

Следващото поколение бързи чипове

Нека сега да разгледаме някои от новите хардуерни иновации от стартиращи компании и действащи компании, които биха могли да процъфтяват в една по-конкурентна екосистема.

Появяват се много обещаващи стартиращи ускорители на задълбочено обучение, които вземат решения за чиста архитектура, освободени от ограниченията на съвместимостта на GPU с общо предназначение. Те включват Cerebras, SambaNova, Groq, Graphcore, Esperanto и Syntiant.

Докато готовите графични процесори трябва да балансират нуждите от игри, графики, HPC и AI работни натоварвания с ограничителни енергийни бюджети, тези стартиращи компании оптимизират безмилостно само за машинно обучение. Това позволява превъзходна ефективност и производителност.

Някои ключови отличителни характеристики включват поддръжка на рядкост, паралелизъм на модела, унифицирана памет и унифицирано обучение/извод - преодоляване на ограниченията, които възпират днешните графични процесори за модели от следващо поколение и сценарии за внедряване.

Технологични тенденции като многочиповата архитектура на Hopper, Infinity Fabric и AMD 3D V-Cache подчертават техники за смекчаване на платообразната производителност на монолитния чип. Те изискват еволюция на софтуер и рамки, за да се използват правилно.

Технологиите за синергична памет като Xe HBM на Intel, HBM в пакета за графични процесори и подредена DRAM отключват по-висока честотна лента на паметта, която е критична за широкомащабно разпределено обучение. Осиновителите изискват актуализирани програмни парадигми.

Иновации като Asynchronous Compute Engines и Intel Deep Learning Boost насочват към блокове, подобни на ASIC, на масовия хардуер, които биха могли значително да подобрят ефективността за работните натоварвания на AI, когато се използват от софтуера.

Облачни титани като Amazon, Microsoft и Google ще продължат да разработват високоспециализирани AI ускорители като Trainium, MN-Core и 3-то поколение TPU, настроени за техните вътрешни нужди. Но те все повече водят до подобрения на рамката.

Технологичните криви като напредъка на Arm в сървърните процесори и стремежите на Intel към интегрирания Xe GPU означават, че дори и чипове с общо предназначение ще разполагат с мощни възможности за машинно обучение след време.

Нововъзникващите връзки като CXL, GEN-Z и OpenCAPI създават нови опции за топология като peer-to-peer GPU клъстери, които софтуерът трябва да се развие, за да използва.

Решения, пригодени за крайни изводи, като Neural Compute Sticks, Edge TPU и ускорители за видеоаналитика, се отличават за сценарии за внедряване извън обучението в центъра за данни.

Иновациите в аналоговите изчисления, in-memory, фотониката и невроморфните архитектури се стремят да преодолеят ограниченията на традиционните фон нойманови архитектури за специализирани случаи на употреба.

Експоненциалното нарастване на размера на модела също налага техники като шардинг и сътрудничество между доставчиците на хардуер и разработчиците на рамки за поддържане на паралелизма на модела между устройствата.

Това активно ферментиране на хардуерни иновации загатва за потенциала за нови пробиви, тъй като изследователите разширяват фокуса отвъд бенчмаркинг инкременталните CUDA оптимизации върху съществуващи фиксирани работни натоварвания.

Нарастващ импулс зад алтернативите

Нека сега прегледаме примери за нарастващ интерес от разработчици и приемане на платформи отвъд CUDA, които служат като окуражаващи индикатори за бъдещо разнообразие на екосистемите:

1. Google приема AMD графични процесори за вътрешна инфраструктура, за да допълни своите TPU и да покрие специализирани случаи на употреба, които им липсват – вече не разчитайки единствено на партньорство с Nvidia.

2. Baidu обучава модели на Kunlun AI с отворен код като PaddlePaddle, използвайки техните собствени чипове Kunlun и оптимизирайки за нишови китайски масиви от данни - отделяне от зависимостта от хардуера на Nvidia.

3. Vast.ai и CoreWeave изграждат процъфтяващи бизнеси чрез наемане на достъп до хиляди графични процесори AMD за задълбочено обучение, което показва силно незадоволено търсене.

4. Пакет за сравнителен анализ на MLCommons, обхващащ изводи и тестове за обучение с помощта на хардуер на Apple, Arm, AMD, Intel, Nvidia, демонстриращ разширяваща се поддръжка.

5. Управлявана облачна услуга на Lambda Labs за задълбочено обучение, изградена изключително с AMD Хардуер, който се разраства бързо, сега се използва от OpenAI, Stanford и SambaNova за обучение на модели в мащаб.

6. Оркестрационната рамка на Microsoft ORCA, проектирана от самото начало за управление на разнородни клъстери за обучение на машини, обхващащи процесори, графични процесори и други ускорители.

7. Обучаващ се във Facebook разговорен AI модел на BlenderBot в 4000+ графични процесора, използвайки собствени оптимизации за мащабиране на средата — показващи алтернативи на собствени библиотеки.

8. Unity придобива компанията ironSource за $4,4 милиарда въз основа на силата на нейната платформа за машинно обучение, използваща AMD графични процесори, предизвиквайки господството на Nvidia в свързаното с игрите машинно обучение.

9. Apple демонстрира значително ускоряване на обучението на популярни модели като BERT на M1 Ultra над Nvidia A100 GPU, подчертавайки напредъка на сървърните чипове Arm.

10. Тренировъчните процесори Gaudi на Habana, закупени от Intel, показват ефективност, конкурираща GPU за трансформаторни и CNN топологии чрез унифицирана архитектура.

11. Моделът на Intel Stress GPT Natural Language ефективно се мащабира до 1024 възли на процесори Xeon, крадейки ума от предположенията за NLP обучение на първо място на GPU.

12. Amazon превключва разработката на чипове AWS Graviton от Arm към собствена архитектура, демонстрирайки способността на глобалните облачни доставчици да инвестират в напълно персонализиран силиций, оптимизиран за техните нужди.

13. Microsoft пуска първоначален доставчик на изпълнение на WinML за GPU на AMD и обявява планове за поддръжка на платформата Qualcomm Snapdragon — разширявайки хардуерното разнообразие в своята екосистема.

14. Graphcore показва завладяващи претенции за ускоряване на основните модели, използващи Poplar IPU архитектура, проектирана от нулата за работни натоварвания с машинен интелект.

15. Cerebras Wafer Scale Engine, опаковащ 850 000 ядра в един гигантски чип, прави революционни претенции за трансформаторни работни натоварвания, съперничещи на GPU клъстери в стелаж.

16. Google въвежда поддръжка за графични процесори AMD в среда на преносими компютри Colab, демократизирайки достъпа до ускорение, което не е ориентирано към CUDA, за студенти и изследователи.

17. Архитектурните лаборатории на Intel отварят платформата за задълбочено обучение Nauta, използвайки Kubernetes за прозрачно оркестриране на моделно обучение в различни видове хардуер.

18. Публикувано изследване на Facebook AI, показващо производствено обучение на модели на компютърно зрение в 256 процесора конкурентно, намалявайки зависимостта от специализиран хардуер.

19. Архитектурата на Groq със софтуерно дефинирана плътност, елиминираща фиксираните функционални блокове, за да даде възможност за по-гъвкаво специфично за домейн ускорение, показващо обещание по отношение на показателите за ефективност.

20. Reconfigurable Dataflow Architecture на SambaNova, адаптивна към променящите се архитектури на модела и сигнатури за рядкост, осигуряваща пробивни резултати на MLPerf.

Общата нишка зад тези разработки

Връщайки се назад, общата нишка в тези разнообразни индикатори за напредък на решения, различни от CUDA, е потвърждението, че ерата на монолитните, патентовани хардуерни стекове с изкуствен интелект приключва.

Продължаващата бърза еволюция на моделите за машинно обучение прави разчитането на ускорители с фиксирана функция, настроени единствено за една фаза като обучение или извод, неоптимално в дългосрочен план, тъй като границите се размиват между тези етапи.

Вертикално интегрираните стекове, които възпрепятстват оперативната съвместимост, идват за сметка на потребителския избор. Патентованата технология възпрепятства изследването на алтернативни техники, които могат да осигурят по-добра ефективност, точност или производителност за нововъзникващи архитектури на модели.

Новите доставчици на хардуер също не могат да проникнат в екосистемата, ако популярните рамки и комплекти инструменти за внедряване са изключително оптимизирани около една установена платформа.

Решението, както се вижда от много от подчертаните разработки, включва възприемане на модулни, гъвкави архитектури, отделени от отделни хардуерни платформи или тесни режими на оптимизация, продиктувани от влиятелни оператори.

Тази тенденция обещава да поддържа демократизацията и комодификацията, които катализираха камбрийската експлозия на креативността, лежаща в основата на модерната революция в машинното обучение.

Запазването на демократизацията мотивира инвестициите в преносимост на модела, общи междинни представяния и стандартизирани операторски библиотеки, които предпазват екосистемата от фрагментация в затворени вертикали.

Свръхзависимостта от една единствена платформа рискува концентрация на контрол, която задушава иновациите в дългосрочен план. Разнообразието стимулира креативността, докато изследователите изследват нови оптимизации в различен хардуер.

Не е необходимо хетерогенен и преносим да са пейоративни термини, обозначаващи неефективност, ако стандартите се развиват интелигентно. Направено правилно, те подкрепят меритокрацията - най-добрите идеи печелят независимо от изкуствените ограничения.

Този манталитет подравнява стимулите между големите доставчици, слабите стартиращи компании, общностите с отворен код и клиентите, за да създаде възможност за всички участници.

Бъдещи рискове и предизвикателства

Въпреки всички обещаващи индикатори, подчертани по-рано, преходът към по-отворена и жизнена GPU изчислителна екосистема остава изпълнен с рискове и предизвикателства:

1. Вкоренени интереси, съпротивляващи се на промяната, която подкопава тяхното господство или затворени модели на монетизация.

2. Чиста техническа трудност при свързването на патентовани интерфейси, оптимизирани и закалени в битки през годините.

3. Отбягване на риска на търговските купувачи, фокусирани повече върху незабавното изпълнение, отколкото върху дългосрочната гъвкавост.

4. Пътни карти за координиране на триенето в разтегателната екосистема — хардуер, рамки, облачни доставчици, разработчици, академици и др.

5. Липса на готови решения, осигуряващи безпроблемно готово изживяване за нови платформи, които отговарят на зрелите действащи оператори.

6. Много оптимизации като сливането на ядрото са специфични за архитектурата на модела, устоявайки на универсални решения.

7. Пропуски в инструментите, включително дебъгери, профилиращи и компилатори за алтернативен хардуер, ограничаващ предвидимостта на производителността.

8. Недоразвита поддръжка за възникващи работни натоварвания с уникални изисквания като геномика, физически симулации, роботика и др.

9. Фрагментация в твърде много платформи на ниско ниво, което размива фокуса и създава объркване.

10. Липса на унифицирани формати на данни, междинни представяния и стандарти, затрудняващи оперативната съвместимост.

11. Недостатъчен мащаб и валидиране в реалния свят, за да оправдае приемането от предприятието извън ограниченото експериментиране.

12. Недостиг на таланти при разработчици, изследователи и специалисти по данни с опит в нови платформи и парадигми.

13. Продължаващ скептицизъм предвид неуспешни опити на предишни „убийци на CUDA“, които провалиха и пропиляха инвестиции.

14. Лоша използваемост на софтуера, документация и уроци, възпрепятстващи навлизането на нови разработчици.

15. Издаване на ритъм и прозрачност на пътна карта, изоставащи патентовани платформи, поддържани от огромни ресурси.

Преодоляването на тези предизвикателства със сигурност е нетривиално предвид дълбоките корени, положени от CUDA в продължение на 15 години в академичните среди, разработката на корпоративен софтуер, облачната инфраструктура, изследователските общности и почти всеки аспект от ландшафта на машинното обучение.

Инерцията на такива утвърдени стандарти не може да бъде надценена. Техническото съответствие на функционалността на CUDA не е достатъчно. Бремето е изключително голямо за алтернативите да демонстрират недвусмислено превъзходство, преди сериозно осиновяване да може да процъфти.

Но все пак има обнадеждаващи признаци на импулс, движен от истинското разочарование на изследователи, разработчици и доставчици на платформи около ограниченията, наложени от зависимостта от една платформа.

Този прилив на обикновена инерция заражда екосистема с по-големи проверки и баланси срещу концентрацията на контрол, която може да подкопае дългосрочните иновации.

Докато фрагментацията е риск, обмислено проектираните, модулни софтуерни и хардуерни екосистеми, изградени върху слоеве от абстракции, взаимозаменяеми компоненти и отворени стандарти, осигуряват най-обещаващия път за балансиране на устойчивите иновации срещу пазарната консолидация.

И което е важно, за разлика от предишни опити за прекъсване, които възприеха фрагментиран подход, противопоставящ изолирани технологии срещу доминиращи платформи, днес виждаме истинска координация между големи и малки заинтересовани страни, за да се приведе в съответствие зад решения, които подкрепят демократизацията и избягват фрагментацията.

Има нарастващ консенсус, че дългосрочната жизнеспособност на екосистемата за задълбочено обучение изисква премахване на собственическите ограничения, наложени от всяка една платформа. Тази движеща философия може да бъде основният фактор за разлика спрямо неуспешните усилия в миналото.

Как може да изглежда бъдещето след CUDA?

Като се има предвид инерцията зад по-отворените GPU изчислителни екосистеми, обсъждани досега, как би могло да изглежда бъдещето, което успява да разбие хватката на Nvidia?

Нека спекулираме с някои възможни сценарии:

1. CUDA запазва значението си за дълга опашка от наследени проекти, но престава да бъде изключителен фокус на новото развитие. Рамки като PyTorch и TensorFlow работят гладко на Nvidia, AMD и Intel GPU. Някои работни натоварвания гравитират към Apple M1 и последващите ARM сървърни чипове, докато набират зрялост. Облачните платформи осигуряват безпроблемно оптималните хардуерни комбинации за дадени моделни архитектури и профили на разходите.

2. Наборите от инструменти за квантуване, съкращаване и дестилация на модел придобиват значение за максимизиране на производителността при различни хардуерни възможности. Тези техники осигуряват преносимост без собственически интерфейси, заключени към конкретни ускорители.

3. Жизнена стартова екосистема процъфтява с падащи бариери пред набиране на сцепление около нови чипове за дълбоко обучение като IPU, DPU, невроморфни архитектури и т.н. Намалената зависимост от платформата отваря врати за възможности за бързи последователи.

4. Отворени стандарти като ONNX Runtime и усилията на групата Khronos придобиват известност като унифицирани рамки за оперативна съвместимост в хетерогенната екосистема. CUDA поддържа уместност в специфични за Nvidia среди, но престава да бъде универсално изискване.

5. Облачните доставчици диверсифицират хардуерните предложения, за да включват AMD, Intel, Arm-базирани опции заедно с Nvidia GPU. Техните слоеве на софтуерна абстракция рационализират приемането на оптимални екземпляри за различни архитектури на модели и сценарии на използване.

6. в допълнение към GPU на Nvidia, практикуващите ML използват AMD GPU, Apple M1 SoC, Google TPU, Intel Xeon+FPGA, Cerebras и Graphcore чипове и т.н. въз основа на необходимостта от работно натоварване без страхове от блокиране на софтуера.

7. Изследователите поставят по-голям фокус върху техники като мета-обучение, обучение с няколко изстрела, компресия на модела, дестилация на знания и т.н., които намаляват изчисленията и зависимостта от данни, за да увеличат максимално гъвкавостта между хардуерните платформи.

8. Инструменти като AI компилатори, оптимизатори на графики и преобразуватели на модели набират популярност, за да балансират прозрачно производителността на различния хардуер. Практиците в ML се тревожат по-малко за микроархитектурната оптимизация.

9. С паритет на производителността на рамката фактори като обща цена на притежание, лекота на внедряване, техническа поддръжка, образователни ресурси и етика придобиват значение за решенията за приемане на хардуер.

10. Повече предприятия изграждат частни AI облаци, базирани на най-добрите компоненти, обхващащи процесори, графични процесори и други ускорители, предоставени според нуждите, вместо да бъдат ограничени до който и да е доставчик.

По същество екосистемата ще се развие от свят, в който уменията за CUDA са задължителни предпоставки дори за роли, свързани с хардуер, до свят, в който практикуващите могат да се съсредоточат повече върху модели на високо ниво, данни и работни потоци - избирайки най-подходящите хардуерни комбинации като стандартизирани градивни елементи.

Вместо разхвърляни фрагментирани безплатни за всички, обмислено архитектурни абстракции и модулност, които поддържат меритокрацията, биха могли да освободят иновациите от изкуствени ограничения, наложени от предимствата на ранните движители, които сега рискуват концентрация на власт.

Това бъдеще ще подкрепи демократизацията и комодификацията на невероятния технологичен напредък, проникващ през всеки слой на хардуерния стек за дълбоко обучение, като същевременно избягва ненужното раздвояване.

Ключовите принципи на модулност, възможност за композиране и конкурентна меритокрация биха могли да създадат екосистема с проверки и баланси, за да подхранват прогреса на много поколения в машинното обучение отвъд това, което е възможно при статуквото.

Заключение

Това ни довежда до края на нашия задълбочен анализ на монопола на Nvidia върху изчислителното пространство на GPU, как компанията постигна позицията си на господство с CUDA, заплахите, възникващи за нейната хватка над екосистемата, и как динамиката може да се измести към повече избор и конкуренция в пейзажа на хардуера с изкуствен интелект в бъдеще.

Ключовите изводи включват:

- Пионерската работа на Nvidia върху CUDA, започваща през 2007 г., съчетана със зависимостта на дълбокото обучение от ускорението на GPU, й позволи да получи доминираща позиция, тъй като AI процъфтява след 2012 г.

- CUDA се възползва от силни мрежови ефекти, огромни технически ресурси и тясна интеграция с всички основни софтуерни рамки и библиотеки.

- Опитите на AMD, Intel и академични усилия като OpenCL да изместят CUDA досега са се провалили поради трудностите при преодоляването на преднината и инерцията на CUDA.

- Въпреки това, напоследък започнаха да се образуват пукнатини в бронята на Nvidia, както се вижда от промените в софтуера към преносимост в рамки като PyTorch, напредъка на хардуера от конкурентите и слоевете за абстракция в облака, опростяващи избора.

- Въпреки че преодоляването на инерцията около установените стандарти е предизвикателство, изглежда има нарастващ консенсус, че дългосрочното здраве на екосистемата на ИИ изисква намаляване на зависимостта от една собствена платформа.

- Архитектирането на следващото поколение инфраструктура за машинно обучение около отвореността и конкурентната меритокрация може да балансира иновациите срещу концентрацията на власт по начини, които са от полза за цялата общност за дълбоко обучение.

- Бъдещето може да види множество ускорители, обхващащи GPU, CPU, TPU, IPU, невроморфни чипове и т.н., интегрирани гъвкаво чрез общи абстракции, вместо да бъдат доминирани от една платформа.

В заключение, докато Nvidia поддържа доминираща позиция в момента, нейният CUDA монопол може да е достигнал своя връх. Следващата фаза обещава повече избор и контрол за разработчиците, докато алтернативите узреят. Този преход обаче няма да се случи за една нощ и може да отнеме много години, за да се разиграе напълно.

Препратки :

  1. https://matt-rickard.com/nvidias-cuda-monopoly
  2. https://www.semianalysis.com/p/nvidiaopenaitritonpytorch
  3. https://www.reddit.com/r/AMD_Technology_Bets/comments/10fe3hb/how_nvidias_cuda_monopoly_in_machine_learning_is/
  4. https://www.reddit.com/r/Python/comments/10damug/how_nvidias_cuda_monopoly_in_machine_learning_is/
  5. https://www.reddit.com/r/NVDA_Stock/comments/10dglom/how_nvidias_cuda_monopoly_in_machine_learning_is/
  6. https://www.reddit.com/r/MachineLearning/comments/4qorsz/askreddit_do_you_think_that_the_reliance_on_cuda/
  7. https://www.reddit.com/r/MachineLearning/comments/15iz6v7/d_nvidia_gpu_shortage_is_top_gossip_of_silicon/
  8. https://venturebeat.com/ai/nvidia-gpu-shortage-is-top-gossip-of-silicon-valley/
  9. https://www.reddit.com/r/pcmasterrace/comments/11fqlpw/nvidia_dominates_on_gpu_market/
  10. https://www.reddit.com/r/gpu/comments/o66sko/can_we_discuss_the_current_nvidia_monopoly/
  11. https://www.reddit.com/r/programming/comments/ugs4vb/nvidia_sees_trilliondollar_future_in_open_and/
  12. https://www.theregister.com/2022/05/02/nvidia_open_standards/
  13. https://www.reddit.com/r/nvidia/comments/118fk0u/bummer_nvidia_stopping_support_for_multigpu_peer/
  14. https://forums.developer.nvidia.com/t/standard-nvidia-cuda-tests-fail-with-dual-rtx-4090-linux-box/233202/28
  15. https://www.reddit.com/r/linux/comments/ub6t44/unpopular_opinion_ditch_nvidia_already/
  16. https://www.quora.com/In-deep-learning-is-there-no-good-alternative-to-CUDA-available-Isnt-it-bad-to-focus-only-on-NVIDIA
  17. https://www.libhunt.com/posts/1313204-nvidia-s-cuda-monopoly
  18. https://min.news/en/tech/bb3b94fd293f434093ba6fc503d049c5.html
  19. https://www.linkedin.com/posts/tmquan2090_how-nvidias-cuda-monopoly-in-machine-learning-activity-7021038002491572224-mZUC/?originalSubdomain=vn
  20. https://linustechtips.com/topic/1509372-does-nvidia-have-a-monopoly/
  21. https://www.bizjournals.com/sanjose/news/2023/06/30/nvidia-artificial-intelligence-chips.html