В чем разница между ядрами CUDA и тензорными ядрами? (Объяснение) - Все различия

 В чем разница между ядрами CUDA и тензорными ядрами? (Объяснение) - Все различия

Mary Davis

Ядра CUDA и Tensor - это продукты, разработанные компанией Nvidia. Что же такое ядра CUDA и Tensor? CUDA означает Compute Unified Device Architecture. Ядра CUDA присутствуют в ваших графических процессорах, смартфонах и даже автомобилях, как утверждают разработчики Nvidia.

Ядра CUDA - это платформа параллельных вычислений и интерфейс прикладного программирования (API), который позволяет программному обеспечению использовать определенные типы графических процессоров (GPU) для обработки данных общего назначения.

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

Проще говоря, эти ядра являются важной частью GPU в вашем компьютере для выполнения определенных вычислений. Ядра CUDA используются для умножения двух чисел и добавления их к другому числу.

В то время как Tensor core - это то же самое, но с матрицами 4×4. Эти вычисления, по сути, ускоряют рендеринг графики для вас.

Что такое CUDA?

Compute Unified Device Architecture в сокращении CUDA, разработанная компанией Nvidia, выпущенная 23 июня 2007 года, является платформой параллельных вычислений и интерфейсом прикладного программирования (API).

Это позволяет программному обеспечению использовать определенные типы графических процессоров (GPU) для обработки данных общего назначения - метод, известный как вычисления общего назначения на GPU (GPU).

CUDA - это программный слой, который обеспечивает прямой доступ к виртуальному набору команд GPU и параллельным вычислительным элементам для выполнения вычислительных ядер. CUDA была разработана для работы с различными языками программирования, включая C, C++ и Fortran.

Возможность работы с различными языками программирования облегчает специалистам по параллельному программированию использование ресурсов GPU, если отличать его от предшествующих API, таких как Direct3D или OpenGL, которые требовали от вас более продвинутых навыков в графическом программировании.

GPU с CUDA также поддерживает фреймворки программирования, такие как OpenMP, OpenACC, OpenCL, а также HIP, который может компилировать такой код в CUDA. Первым названием CUDA была аббревиатура Compute Unified Device Architecture. Однако позже Nvidia отказалась от общепринятой аббревиатуры.

Мощная видеокарта Nvidia GTX 1080 Ti

Подробнее о CUDA

Графический процессор (GPU), являясь специализированным компьютерным процессором, отвечает потребностям интенсивных вычислительных нагрузок 3D-графики в реальном времени.

Примерно в 2012 году GPU эволюционировали и превратились в высокопараллельные многоядерные системы, позволяющие эффективно обрабатывать данные для больших блоков.

При параллельной обработке огромных блоков данных эта конструкция превосходит центральные процессоры общего назначения (ЦП) для таких алгоритмов, как:

  • криптографические хэш-функции
  • машинное обучение
  • моделирование молекулярной динамики
  • физические двигатели
  • алгоритмы сортировки

Использование архитектуры CUDA сейчас и в будущем

  • Ускоренная визуализация трехмерной графики
  • Ускоренная межконверсионная обработка форматов видеофайлов
  • Ускоренное шифрование, дешифрование и сжатие
  • Биоинформатика, например, NGS секвенирование ДНК BarraCUDA
  • Распределенные вычисления, например, предсказание нативной конформации белков
  • Симуляторы медицинского анализа, например, виртуальная реальность на основе изображений КТ и МРТ-сканирования
  • Физическое моделирование, в частности, в гидродинамике
  • Обучение нейронных сетей в задачах машинного обучения
  • Распознавание лиц
  • Проекты распределенных вычислений, такие как [email protected] и другие проекты, использующие BOINC
  • Молекулярная динамика
  • Майнинг криптовалют
  • Программное обеспечение "Структура из движения" (SfM)

Что такое тензорное ядро?

Специализированные ядра, называемые Tensor Cores, позволяют проводить обучение со смешанной точностью. Начальное поколение этих специализированных ядер делает это с помощью алгоритма fused multiply-add. Это позволяет умножать и складывать две матрицы 4 x 4 FP16 в матрицу 4 x 4 FP16 или FP32.

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

На практике это значительно ускоряет вычисления, практически не влияя на конечную эффективность модели. Эта возможность была расширена более поздними микроархитектурами до еще менее точных компьютерных представлений чисел.

Первое поколение было представлено микроархитектурой Volta, начиная с V100, с каждым новым поколением микроархитектуры GPU для вычислений становилось доступно все больше форматов точности компьютерных чисел.

В следующем разделе мы расскажем о том, как менялась и улучшалась производительность и функциональность Tensor Cores с каждым поколением микроархитектуры.

Графическое изображение, полученное с помощью Titan V

Как работают тензорные ядра?

Первое поколение:

Микроархитектура GPU Volta была включена в первое поколение тензорных ядер. Эти ядра позволили проводить обучение со смешанной точностью и форматом чисел FP16.

Это может дать до 12-кратного увеличения пропускной способности терафлоп для определенных GPU. 640 ядер топового V100 дают до 5-кратного увеличения скорости работы по сравнению с GPU Pascal предыдущего поколения.

Второе поколение:

С появлением графических процессоров Turing было представлено второе поколение тензорных ядер. Int8, Int4 и Int1 были добавлены к списку поддерживаемых прецизий тензорных ядер, которые ранее были ограничены FP16.

Благодаря процедурам обучения со смешанной точностью пропускная способность GPU увеличилась в 32 раза по сравнению с GPU Pascal.

Третье поколение:

Архитектура графического процессора Ampere развивает предыдущие достижения микроархитектур Volta и Turing, добавляя поддержку вычислений FP64, TF32 и bfloat16.

Обучение и выводы в области глубокого обучения значительно ускоряются благодаря этим форматам повышенной точности. Например, формат TF32 функционирует аналогично FP32 и при этом гарантирует ускорение до 20 раз без изменения кода.

Затем, с помощью всего нескольких строк кода, автоматическая реализация смешанной точности ускорит обучение еще в 2 раза.

NVLink третьего поколения для обеспечения молниеносного взаимодействия нескольких GPU, ядра Ray Tracing третьего поколения и специализация на математике с разреженными матрицами - дополнительные аспекты микроархитектуры Ampere. .

Четвертое поколение:

В будущем планируется выпуск четвертого поколения Tensor Cores на базе микроархитектуры Hopper. Четвертое поколение Tensor Cores в следующем H100.

который, как ожидается, будет выпущен в марте 2022 года, сможет работать с форматами точности FP8 и, по словам NVIDIA, ускорит огромные языковые модели "в поразительные 30 раз по сравнению с предыдущим поколением".

Видеокарта RTX используется для очень быстрого рендеринга графики, поскольку содержит тензорные ядра.

Разница между ядрами CUDA и тензорными ядрами

Ядра Tensor в настоящее время ограничены Titan V и Tesla V100. 5120 ядер CUDA на обоих GPU имеют максимальную производительность одной операции умножения-накопления с одинарной точностью (например, в fp32: x += y * z) за такт GPU (например, частота PCIe Tesla V100 составляет 1,38 ГГц).

Каждое тензорное ядро работает с малыми матрицами 4×4. За один такт GPU каждое тензорное ядро может выполнить одну операцию умножения-накопления матрицы.

Смотрите также: Семена черного и белого кунжута: вкусовые различия - Все различия

Он перемножает две матрицы 4×4 FP16 и складывает матрицу 4×4 FP32, которая получается в аккумуляторе (который также является матрицей fp32 4×4).

Поскольку входные матрицы имеют размер fp16, а результаты умножения и аккумулятор - fp32, алгоритм известен как алгоритм смешанной точности.

Правильным термином, вероятно, было бы просто "ядра матрицы 4×4", но маркетинговая команда NVIDIA предпочла использовать "тензорные ядра".

Полное объяснение тензорных ядер в двух словах

Смотрите также: Ощутимые различия между качеством звучания MP3-файлов 192 и 320 Кбит/с (комплексный анализ) - Все различия
Карта GPU Ядра CUDA VRAM
GeForce GTX 1660 Ti 1536 6 ГБ
GeForce GTX 1660 Super 1408 6 ГБ
GeForce GTX 1660 1408 6 ГБ
GeForce GTX 1650 Super 1408 4 ГБ
GeForce GTX 1650 1024 и 896 4 ГБ
GeForce GTX 1060 3GB 1280 4 ГБ
GeForce GTX 1650 1280 3 ГБ
GeForce GTX 1060 6GB 768 6 ГБ
GeForce GTX 1050 Ti (3 ГБ) 768 4 ГБ
GeForce GTX 1050 (2 ГБ) 640 3 ГБ
GeForce GTX 960 1024 2 ГБ
GeForce GTX 950 786 2 ГБ
GeForce GTX 780 Ti 2880 2 ГБ
GeForce GTX 780 2304 3 ГБ
GeForce GTX 750 Ti 640 2 ГБ
GeForce GTX 750 512 1 ГБ или 2 ГБ

Графические процессоры, содержащие ядра CUDA

Заключение

  • Ядра CUDA и Tensor - это продукты, разработанные компанией Nvidia. CUDA расшифровывается как Compute Unified Device Architecture. Эти ядра CUDA присутствуют в ваших графических процессорах, смартфонах и даже автомобилях.
  • В то время как тензорные ядра, которые также были разработаны компанией Nvidia, также используются в графических процессорах. Специализированные ядра, называемые "тензорными ядрами", позволяют проводить обучение со смешанной точностью. Первое поколение тензорных ядер позволяло проводить обучение со смешанной точностью и форматом чисел FP16.
  • Это может привести к 12-кратному увеличению производительности в терафлопах для некоторых GPU. Int8, Int4 и Int1 были добавлены в список поддерживаемых прецизионов Tensor Core.
  • Благодаря процедурам обучения со смешанной точностью производительность GPU была увеличена до 32 раз. В будущем планируется выпуск четвертого поколения тензорных ядер на базе микроархитектуры Hopper.

Другие статьи

    Mary Davis

    Мэри Дэвис — писатель, создатель контента и заядлый исследователь, специализирующийся на сравнительном анализе по различным темам. Имея степень в области журналистики и более пяти лет опыта работы в этой области, Мэри страстно любит предоставлять беспристрастную и прямую информацию своим читателям. Ее любовь к письму началась, когда она была молода, и стала движущей силой ее успешной писательской карьеры. Способность Мэри проводить исследования и представлять результаты в простом для понимания и увлекательном формате привлекла к ней внимание читателей во всем мире. Когда она не пишет, Мэри любит путешествовать, читать и проводить время с семьей и друзьями.