CUDA and the rise of NVIDIA - editorial illustration

Дженсен Хуанг, CUDA и восхождение NVIDIA

Введение

Когда Дженсен Хуанг стал одним из основателей NVIDIA в 1993 году, целью было принести 3D-графику в компьютерные игры и мультимедиа. Сегодня процессоры той же компании используются для обучения и работы моделей искусственного интеллекта. Чтобы понять этот переход, стоит начать с инженерного образования Хуанга и программной платформы, которую создала NVIDIA, – CUDA. [1] [1]

1. Инженерная карьера Хуанга

Родившийся на Тайване, Хуанг получил степень бакалавра электротехники в Университете штата Орегон в 1984 году. Он работал разработчиком микропроцессоров в AMD с 1984 по 1985 год, а затем занимал несколько должностей в LSI Logic с 1985 по 1993 год. Он стал директором Coreware, подразделения, отвечавшего за стратегию компании по интеграции нескольких компонентов компьютерной системы на одном чипе. В этот период он также получил степень магистра электротехники в Стэнфордском университете в 1992 году. [2] [1]

5 апреля 1993 года Хуанг основал NVIDIA вместе с Крисом Малаховски и Кёртисом Примом. Он занимает посты президента, генерального директора и члена совета директоров с момента основания компании. В 1999 году NVIDIA провела первичное публичное размещение акций. В том же году она представила GeForce 256, важную веху в истории графических процессоров (GPU) компании. [1] [1]

2. Что такое CUDA?

NVIDIA представила CUDA в 2006 году как программную платформу и модель программирования для выполнения множества вычислений параллельно на своих GPU. GPU – это аппаратное обеспечение, которое выполняет вычисления. CUDA предоставляет инструменты программирования, с помощью которых разработчики запускают свои вычисления на этом оборудовании. Это открыло созданные для графики GPU для приложений в научных исследованиях, высокопроизводительных вычислениях и искусственном интеллекте. [1] [1]

Представьте, что вы осветляете изображение с миллионом пикселей. Вычисление для одного пикселя может выполняться независимо от остальных. Программа на CUDA может разделить эту работу на более мелкие вычисления и выполнить их на GPU. Функция, которая выполняется на GPU, называется ядром. Множество потоков выполняют его параллельно, каждый работает с назначенной ему частью данных. Тот же принцип разделения работы на части, которые можно выполнять параллельно, применим к вычислениям ИИ, таким как умножение больших матриц. [3] [1]

3. Как CUDA помогла индустрии ИИ

При обучении нейронной сети модель сначала делает прогноз. Процесс обучения измеряет ошибку и обновляет параметры модели. Он повторяет этот процесс много раз. GPU ускоряют такие операции, как умножение матриц, давая исследователям время проводить больше экспериментов и делая практичным обучение более крупных моделей. GPU также используются после обучения, во время вывода, когда модель, например языковая модель, генерирует ответ для пользователя. [4] [1]

AlexNet стала практической демонстрацией в 2012 году. Обученная на GPU NVIDIA, она победила в конкурсе по классификации изображений ImageNet. Её производительность показала, что графические процессоры, использовавшиеся для компьютерных игр, могут также обучать модели распознавать изображения. [1] [1]

4. Как CUDA дала NVIDIA долгосрочное преимущество

NVIDIA создала оптимизированные библиотеки и инструменты для вычислений, которые разработчикам нужны часто. cuBLAS ускоряет операции с матрицами, cuDNN поддерживает распространённые операции нейронных сетей, NCCL обеспечивает связь между GPU, а TensorRT помогает обученным моделям работать быстрее. Фреймворки, такие как PyTorch, поддерживают CUDA, поэтому разработчики могут использовать эти возможности, не написав каждую операцию GPU с нуля. [5] [1]

Заключение

Эта программная экосистема укрепила аппаратный бизнес NVIDIA. Команда может перейти от небольшого эксперимента к системе, работающей на множестве GPU, продолжая использовать знакомое программное обеспечение и инструменты. Смена оборудования может потребовать от команды пересмотреть зависимости от CUDA, адаптировать части программного обеспечения и заново протестировать производительность. Годами инвестируя в программное обеспечение наряду с аппаратным, NVIDIA подготовила инструменты для разработчиков, которые уже знали, как ими пользоваться, когда вырос спрос на вычисления для ИИ. [1] [1]

Источники

  1. https://www.nvidia.com/en-us/about-nvidia/corporate-timeline/
  2. https://s201.q4cdn.com/141608511/files/doc_financials/annual/2013/NVDA_2013AR_Proxy_10K-FINAL.pdf
  3. https://docs.nvidia.com/cuda/cuda-programming-guide/02-basics/writing-cuda-kernels.html
  4. https://docs.nvidia.com/cuda/cuda-programming-guide/index.html
  5. https://developer.nvidia.com/machine-learning

Вопросы о Дженсене Хуанге, CUDA и восхождении NVIDIA

Что такое CUDA и зачем NVIDIA её создала?

CUDA – это программная платформа и модель программирования, которую NVIDIA представила в 2006 году для параллельного выполнения множества вычислений на своих GPU. GPU – это аппаратное обеспечение; CUDA предоставляет инструменты программирования, которые открыли графическое оборудование для научных исследований, высокопроизводительных вычислений и ИИ.

Как CUDA помогла индустрии ИИ?

Обучение нейронной сети означает многократное повторение прогноза, измерения ошибки и обновления параметров. GPU ускоряют такие операции, как умножение матриц, позволяя исследователям проводить больше экспериментов и обучать более крупные модели. AlexNet, обученная на GPU NVIDIA, продемонстрировала это, победив в конкурсе ImageNet 2012 года.

Почему CUDA даёт NVIDIA долгосрочное преимущество?

NVIDIA создала оптимизированные библиотеки, которые разработчикам нужны часто, – cuBLAS для операций с матрицами, cuDNN для операций нейронных сетей, NCCL для связи между несколькими GPU и TensorRT для более быстрого вывода, – а фреймворки, такие как PyTorch, поддерживают CUDA, поэтому команды могут масштабироваться от небольшого эксперимента до множества GPU, не переписывая своё программное обеспечение.

Powered By K7