Компания NVIDIA является крупнейшим в мире производителем графических процессоров. Ее разработки на первом месте не только в игровых видеокартах, но и в решениях для различных вычислений. В том числе — в задачах искусственного интеллекта. В чем преимущества чипов NVIDIA, и почему конкурентам сложно их догнать в этом направлении?
Зарождение вычислений на ГП
GPU, или «графический процессор». Впервые это название было использовано в 1999 году для чипа видеокарты GeForce 256, в состав которого вошел блок аппаратной трансформации и освещения. В играх он выполнял эти нехитрые расчеты, освобождая от них центральный процессор ПК.
Но это было только начало. В 2001 году в графических процессорах появились куда более сложные компоненты — шейдерные блоки. Вначале степень их программируемости была ограниченной. Но уже через пару поколений видеокарт шейдеры получили поддержку графических вычислений с плавающей запятой (Floating Point, FP), а их количество в чипах кратно возросло.
В линейке GeForce 6000 родом из 2004 года вертексные шейдеры впервые научились выполнять вычисления формата FP32
Уже тогда некоторые исследователи стали проводить собственные испытания в попытках ускорить математические вычисления с помощью ГП. Этот процесс был сложным, так как для расчетов приходилось переформулировать задачи в вызовы графических API DirectX или OpenGL. Для доступности подобных вычислений в сторонних программах был необходим собственный API, который невозможно было создать без поддержки производителей видеокарт.
В 2006 году на конференции SIGGRAPH, посвященной компьютерной графике, компания ATI представила «Close to Metal». Это был первый API для выполнения неграфических вычислений на видеокартах ATI, который вскоре был переименован в ATI Stream.
В это время в недрах NVIDIA была почти готова новая графическая архитектура Tesla, которая изначально проектировалась с учетом возможности неграфических расчетов. После выпуска первых игровых видеокарт на ее основе, в феврале 2007 года компания представила свой собственный API для вычислений — CUDA. А три месяца спустя были выпущены первые продукты NVIDIA, предназначенных специально для вычислений: Tesla С870, D870 и S870. Этот момент можно считать началом главы массово доступных вычислений на графических процессорах.
Становление CUDA
Темп вычислений на графических чипах NVIDIA и ATI уже в 2007 году в несколько раз превышал значения, которые могли обеспечить центральные процессоры того времени. Топ NVIDIA обеспечивал 384 Гфлопс, а флагман ATI — 475 Гфлопс. По сравнению с 48 Гфлопс, которыми мог оперировать старший ЦП линейки Intel Core 2 Quad, разница была практически на порядок.
Однако все упиралось в возможность многопоточной обработки. NVIDIA G80 обладал 128 шейдерными процессорами, а конкурирующий ATI R600 — целыми 320. Распределить нагрузку между таким количеством вычислительных единиц в то время, когда даже четыре ядра процессора еще не везде использовались, было задачей не из простых. Но главный вектор продвижения все же нашелся — им стали научные проекты. Основная масса расчетов для них масштабируется практически линейно, поэтому именно они извлекали больше всего пользы из CUDA и Stream.
Через некоторое время неграфические вычисления нашли применение и в домашних ПК. С их помощью мощности видеокарт стали использоваться в различных программах для конвертации и кодирования видео. А в августе 2008 года NVIDIA решила использовать CUDA для просчетов PhysX — движка физического поведения объектов в играх.
В 2009 году свет увидел DirectX 11, в состав которого был включен API для неграфических вычислений DirectCompute. Практически одновременно с ним появляется и другой похожий, но открытый API — Open CL. Именно в его пользу делает выбор AMD, потихоньку забросив развитие Stream. А вот NVIDIA хоть и реализовывает поддержку новых API, но при этом не отказывается от своей CUDA. И, как покажет практика, совсем не зря.
Глубокое обучение
После появления универсальных шейдерных процессоров их количество в чипах росло по экспоненте. Благодаря этому топовый чип GF100, появившийся через три года после G80, работал с вычислениями вчетверо быстрее своего «предка». Ускорение, которые давали вычисления на ГП по сравнению с ЦП, становилось все больше, а сами вычисления распространялись все шире.
В 2012 году c помощью API CUDA группа энтузиастов в университете Торонто решает создать одну из первых сверточных нейросетей для распознавания изображений. Для этого они используют более миллиона изображений и три терафлопса вычислительной мощности, которые обеспечили две видеокарты GTX 580 на базе ГП GF110. Проект получает название AlexNet. Он был представлен на конкурсе ImageNet Large Scale Visual Recognition Challenge, получив первое место за распознавание c минимальным количеством ошибок.
Архитектура AlexNet оказала существенное влияние на многие последующие проекты в области глубокого обучения с помощью графических процессоров. И, как следствие, в разы увеличила интерес к самим ГП в роли вычислительных чипов для подобных расчетов.
До 2017 года NVIDIA продолжала наращивать «чистую» мощь своих графических процессоров. Если в 2007 году топовый G80 мог обеспечить 384 Гфлопс при расчетах, то в 2017 году чип GP102 достигал в них уже 12 Тфлопс. Но компания продолжала искать пути по более существенному наращиванию производительности, так как задачи для ГП со временем становились все сложнее и сложнее.
Конец 2017 года можно считать переломным моментом для нейросетевой отрасли. Тогда NVIDIA представила первый графический процессор с тензорными ядрами — GV100 на архитектуре Volta. В то время, как шейдерные процессоры могли работать с вычислениями полной точности (FP32), тензоры поддерживали только половинную (FP16), но с гораздо большим темпом. Вдобавок к этому появилась возможность использовать целочисленные вычисления (INT32) на шейдерах одновременно с плавающими. Для эффективного задействования всех вычислительных элементов вместе с чипом и видеокартами на его основе NVIDIA представила API CUDA версии 7.0.
Эксперимент был успешным: производительность в задачах глубокого обучения возросла кратно, ведь высокая точность им была не нужна. Чипы AMD, до этого хоть как-то конкурирующие за счет вычислительной мощности шейдеров, остались далеко позади. А NVIDIA занялась разработкой следующей графической архитектуры — Turing. Теперь каждое поколение компания совершенствовала тензорные ядра. Помимо рабочих нагрузок, они пригодились и в играх для технологии повышения производительности DLSS. В 2022 году NVIDIA представила графическую архитектуру Ada Lovelace. Ее тензорные ядра поддерживают вычисления в менее точном формате FP8, но в двойном темпе по сравнению с FP16. Таким образом, даже без учета роста количества тензоров, пиковую производительность обучения удалось удвоить. В следующей архитектуре Blackwell появилась поддержка вычислений FP4, которая в очередной раз удваивает пиковую производительность тензоров.
Сила ГП NVIDIA не только в «железе», но и в программной поддержке. С выходом каждой графической архитектуры компания обновляет API CUDA и предоставляет разработчикам подробные инструкции по работе с ним. Благодаря этому производители ПО своевременно учатся использовать особенности новых чипов, что позволяет «выжимать» из них в реальных задачах практически всю возможную производительность.
NVIDIA и ее конкуренты на рынке нейросетей
На сегодняшний день ГП NVIDIA — самые востребованные чипы для обучения и работы различных нейросетей. Высокая вычислительная мощность и постоянно развивающаяся программная платформа CUDA, совместимая со многими популярными фреймворками вроде TensorFlow и PyTorch, делают их лучшим выбором для вычислений глубокого обучения. И лидер этого рынка в лице Open AI, и недавно «выстрелившая» DeepSeek обучали свои модели именно на чипах от NVIDIA.
Для вычислительных центров компания выпускает отдельную линейку карт GPU Accelerator (бывшая Tesla). Многие из них основаны на тех же графических процессорах, что и игровые видеокарты. Но для наиболее производительных решений NVIDIA в последнее время разрабатывает отдельные чипы, совершенствуя их чуть раньше более доступных решений.
Тем не менее, все основные элементы графической архитектуры даже в таких «больших» чипах схожи с теми, что используются в игровых видеокартах GeForce. Поэтому их тоже можно использовать для несложных задач глубокого обучения, если хватает видеопамяти. В этом кроется огромный плюс: единая графическая архитектура и поддержка CUDA для игровых, профессиональных и вычислительных решений делает ГП NVIDIA доступными как для крупных фирм, так и для небольших стартапов.
В этом плане NVIDIA поступает умно: даже с одной игровой картой вместе с CUDA и ее развитыми инструментами разработчик может получить желаемый результат — пусть и заметно медленнее, чем с вычислительным сервером. При этом он привязывается к API, и при переходе на более производительные решения вновь будет использовать ГП NVIDIA.
Но лавры CUDA не дают покоя многим другим компаниям, в частности — Intel. В ответ она разработала открытый стандарт oneAPI, который призван унифицировать вычисления на различных чипах: центральных и графических процессорах, программируемых матрицах и специализированных ускорителях. В 2024 году Intel вместе с Google, Qualcomm, Samsung, ARM, Fujitsu, Imagination и VMware создали консорциум Unified Acceleration Foundation. Его целью будет дальнейшее развитие инициатив oneAPI.
Изменит ли как-то это баланс оборудования на рынке нейросетей — вопрос будущего, причем не самого ближнего. Сегодня реальный конкурент у NVIDIA на этом направлении все также один: это компания AMD с картами Instinct. С 2020 года «красные» разделили свою графическую архитектуру на две параллельно развивающиеся ветви. RDNA предназначена для игровых и профессиональных видеокарт, а CDNA — для центров обработки данных. Современные чипы AMD используют программный стек ROCm, и могут ускорять вычисления невысокой точности с помощью матричных блоков. Но до возможностей API CUDA и производительности тензорных ядер NVIDIA им все еще далеко.
Возможно, в скором времени определенную конкуренцию NVIDIA смогут предложить и чипы от Huawei. Компания разрабатывает собственные ИИ-ускорители, и последнее решение в лице Ascend 910C выглядит довольно неплохо. Однако стоит учитывать, что Huawei ограничена санкциями и не имеет доступа к самым современным техпроцессам. Поэтому, скорее всего, ускорители компании останутся эксклюзивным решением для китайского рынка, а будущие поколения из-за ограничений техпроцесса не получат существенного роста производительности на чип.
А пока лидерство NVIDIA в этой сфере не подлежит сомнению. Благодаря буму нейросетей ее доходы от вычислительных решений впервые превысили аналогичные от игровых видеокарт уже в 2023 году. 2024 год оказался для компании еще более успешным: на оборудовании для вычислений она заработала вчетверо больше, чем на игровом рынке. посмотрим что ей принесет год грядущий. Важно то, что NVIDIA не забывает вкладывать часть полученной прибыли в новые разработки. Каждый год компания представляет их на конференции GPU Technology Conference (GTC), основной темой которой в последнее время является искусственный интеллект. В этом году GTC прошел с 17 по 21 марта. NVIDIA раскрыла подробности о будущих графических архитектурах Blackwell Ultra и Rubin, а также презентовала новый вычислительный чип B300.
К сведению:
В 2006 году на конференции SIGGRAPH, посвященной компьютерной графике, компания ATI представила «Close to Metal»
Самое интересное, что первоначально ATI удалось реализовать вычисления не на универсальных шейдерах, а на пиксельных. Для этого в чипе R580, который стал основой для первой вычислительной карты, они уместили аж 48 (!) пиксельных шейдеров с продвинутым управляющим блоком.
Для сравнения: у старшего R520 из того же поколения, который был выпущен на 3 месяца раньше, было всего 16 пиксельных шейдеров, а у G70/G71 от главного конкурента - 24.