Как узнать, поддерживает ли видеокарта cuda

Обновлено: 07.07.2024

Для поддержки графического процессора TensorFlow требуется набор драйверов и библиотека. Мы рекомендуем создать и использовать образец библиотеки TensorFlow Docker с поддержкой графического процессора (только для Linux). Для этой установки требуются только драйверы графического процессора NVIDIA® .

Эти инструкции по установке конечной версии TensorFlow. конкуренция с протестированными моделями сборки для версий CUDA® и cuDNN, которые можно использовать со старыми выпусками TensorFlow.

Пакет пипсов

Доступные пакеты, системные требования и инструкции см. в присутствии по установке pip . Пакет TensorFlow pip включает GPU для поддержки карт с поддержкой CUDA®:

В этом рассказывается о поддержке графического процессора и степени установки последней стабильной версии TensorFlow.

Старые версии TensorFlow

В версиях 1.15 и старше пакеты CPU и GPU разделены:

Аппаратные требования

Подключено устройство с возможностью поддержки графического процессора:

  • Карта NVIDIA® GPU с архитектурой CUDA® 3.5, 5.0, 6.0, 7.0, 7.5, 8.0 и выше 8.0. См. список карт GPU с поддержкой CUDA® .
  • Для графических процессоров с неподдерживаемой архитектурой CUDA®, чтобы избежать JIT-компиляции из PTX или для использования других версий библиотеки NVIDIA®, см. руководство по сборке Linux из исходного кода .
  • Пакеты не встречались в коде PTX, за исключительной использованием архитектуры CUDA®; поэтому TensorFlow не загружается на старых графических процессорах, если CUDA_FORCE_PTX_JIT=1 . (Подробности см. в разделе Совместимость приложений .)

Требования к программному обеспечению

В вашей компании должна быть установлена ​​​​установленная платформа NVIDIA®:

  • Драйверы графического процессора NVIDIA® — для CUDA® 11.2 требуется версия 450.80.02 или выше.
  • Набор инструментов CUDA® — TensorFlow поддерживает CUDA® 11.2 (TensorFlow >= 2.5.0)
  • CUPTI поставляется с набором инструментов CUDA®.
  • cuDNN SDK 8.1.0 (версия cuDNN).
  • (Необязательно)TensorRT 7 для устранения задержки и пропускной способности для сочетания выводов при некоторых симптомах.

Настройка Linux

Приведенные ниже инструкции apt — это самый простой способ установить интеграцию программного обеспечения NVIDIA в Ubuntu. Однако при сборке TensorFlow из исходного кода быстро установите требования к программному обеспечению, перечисленные выше, и рассмотрите возможность использования образа Docker — разработайте TensorFlow в качестве основы.

Установите CUPTI, который поставляется с набором инструментов CUDA®. Добавить каталог установки к установке окружения $LD_LIBRARY_PATH :

Установите CUDA с помощью apt

В этом разделе показано, как установить CUDA® 11 (TensorFlow >= 2.4.0) в Ubuntu 16.04 и 18.04. Эти инструкции могут работать для других дистрибутивов на базе Debian.

Внимание: безопасная загрузка усложняет установку драйвера NVIDIA выходит за пределы этой инструкции.

Ubuntu 18.04 (CUDA 11.0)

Ubuntu 16.04 (CUDA 11.0)

установка Windows

Убедитесь, что установленные пакеты программного обеспечения NVIDIA соответствуют версии, приведенной выше. В частности, TensorFlow не загружается без файла cuDNN64_8.dll. Для использования другой версии, см. руководство по сборке Windows из исходного кода .

Добавьте каталоги установки CUDA®, CUPTI и cuDNN в переменную окружения %PATH% . Например, если CUDA® Toolkit установлен в C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0 а cuDNN — в C:\tools\cuda, обновите %PATH%, чтобы он использовал:

Настройка WSL2

Теперь достигнута экспериментальная поддержка WSL2 в Windows 10 19044 или более поздней версии с доступом к графическому процессору. Это самое последнее обновление Windows 10 (также известно как версия 21H2/обновление за ноябрь 2021 г.). Вы можете получить последнее обновление отсюда: Загрузите Windows 10 .

Если не указано иное, содержимое этой страницы предоставляется по лицензии Creative Commons Attribution 4.0, а образцы кода — по лицензии Apache 2.0. Подробнее см. в Правилах сайта Google Developers. Java является зарегистрированным товарным знаком Oracle и/или ее дочерних компаний.

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

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

Совместимость с видеокартами

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

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

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

Показать содержание

Разъем PCIe x16 — это ключ

 Разъем PCI E Express x16

Благодаря этой блестящей технологии современные видеокарты подходят для большинства материнских плат.

Слоты PCIe x16 имеют несколько суффиксов с разными номерами, и вам может быть интересно, что они означают. Правда в том, что с точки зрения совместимости между ними нет большой разницы.

Например, PCIe 3.0 может работать с картами PCIe 1.0 и наоборот, хотя, если вы используете современный графический процессор в более старом слоте, вы столкнетесь с ограничениями пропускной способности. Общая тенденция заключается в том, что каждая новая версия удваивает производительность предыдущей версии. Таким образом, если PCIe 2.0 имеет 4 ГТ/с (гигапередачи в секунду), то PCIe 3.0 — 8 и т. д.

В настоящее время, в 2022 году, 3.0, вероятно, является наиболее широко используемым слотом, но 4.0 набирает обороты. Недавно выпущенная RTX 3080 может использоваться как с PCI Express 3.0, так и с 4.0, с небольшими отличиями в пользу 4.0. Существует даже версия PCIe 5.0 в производстве, и предположительно версия 6.0 находится на стадии тестирования.

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

Еще один важный момент: вам нужен свободный слот, особенно если вы планируете установить несколько графических процессоров через NVIDIA SLI или NVLink или AMD Crossfire. Вы не сможете сделать это, если у вас есть только один слот PCIe x16, но есть решения для тех, кто хочет заниматься инженерными разработками.

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

Убедитесь, что у вас достаточно места для нового графического процессора

 Видеокарта внутри системы ПК

Это аспект, о котором легко забыть, но который может серьезно повлиять на совместимость видеокарт. Убедитесь, что вы знаете характеристики своего корпуса, так как вы можете легко проверить размеры видеокарты, которые обычно легко доступны на веб-сайте производителя.

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

В большинстве случаев вам нужно сосредоточиться на длине видеокарты, так как обычно это основная проблема. Также хорошо знать ширину, так как возможно, что она может мешать другим компонентам вашего ПК. Еще одна вещь, которую следует учитывать, — это слоты на задней панели, поскольку они могут создавать ложное впечатление из-за того, что иногда они шире, чем графический процессор.

Измерение зазора графического процессора внутри корпуса ПК

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

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

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

Блок питания (БП)

Блок питания для ПК

Это, пожалуй, самое важное, что нужно проверить. Слот PCIe x16, скорее всего, будет на вашей материнской плате, и даже если в вашем корпусе недостаточно места, вы можете получить обновление по разумной цене. Блок питания ненамного дороже, но для него требуется достаточное количество энергии и подходящие разъемы для графического процессора, который вы собираетесь приобрести.

Что касается требуемой мощности блока питания, хорошее эмпирическое правило заключается в том, что количество энергии, используемой вашим графическим процессором, должно составлять не более половины максимальной мощности вашего блока питания. В идеале вы хотите, чтобы ваша видеокарта работала примерно на 40 % от мощности вашего блока питания.

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

Реклама блоков питания. Некоторые производители рекламируют свои блоки с безумными цифрами, например 2000 Вт, но не поддавайтесь на этот маркетинговый трюк. Это число часто является теоретическим всплеском. Мы советуем рассмотреть варианты от известных производителей блоков питания и принять во внимание номинальную мощность.

Не создавайте узких мест

GPU сильнее чем CPU

Если вы приобрели новую видеокарту высшего класса, а остальные компоненты вашего ПК устарели, неизбежно возникнут некоторые узкие места. Обычно это узкое место возникает из-за ЦП, но также может быть вызвано оперативной памятью или жестким диском.

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

Порты отображения

 Разъемы NVIDIA GeForce RTX 2080

Хотя это меньшая проблема, все же важно не забывать о порте вашего монитора. Некоторые графические процессоры позволяют использовать HDMI, DisplayPort или DVI, но некоторые карты не предоставляют такой роскоши.

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

Вам это тоже может понравиться

Графическая карта Совместимость

как выбрать видеокарту

Лучшая видеокарта RTX 3070 Ti

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

GPU Mag поддерживает чтение. Когда вы покупаете по ссылкам на нашем сайте, мы можем получать небольшую комиссию.

Чтобы включить отрисовку с помощью графического процессора, перейдите в меню «Настройки» ‣ Система ‣ Cycles Render Devices и выберите CUDA, OptiX, HIP или Металл. Затем вы должны настроить каждую сцену для использования рендеринга графического процессора в Свойства ‣ Рендеринг ‣ Устройство.

Технологии рендеринга

Blender поддерживает различные технологии рендеринга на графическом процессоре в зависимости от конкретного производителя графического процессора и операционной системы.

Для всех технологий рендеринга с помощью графического процессора Open Shading Language не поддерживается.

CUDA — NVIDIA

OptiX — NVIDIA

OptiX поддерживается в Windows и Linux и требует графических карт Nvidia с вычислительными возможностями 5.0 и выше и версии драйвера не ниже 470. Чтобы убедиться, что ваш графический процессор поддерживается, см. список графических карт Nvidia, на которых лучше всего работает OptiX. Видеокарты RTX с аппаратной поддержкой трассировки лучей (например, Turing и выше).

ХИП – AMD

Поддерживаемые графические процессоры включают:

Серия AMD Radeon RX 5000

Серия AMD Radeon RX 6000

Серия AMD Radeon Pro W6000

Дополнительную информацию о видеокартах AMD и их архитектурах можно найти на веб-сайте AMD.

Режим расширения Clip в узле текстуры изображения не поддерживается.

Металл – Apple (macOS)

Metal поддерживается на компьютерах Apple с графическими картами Apple Silicon или AMD. macOS 12.2 требуется для использования Metal с Apple Silicon, а macOS 12.3 требуется для использования Metal с видеокартами AMD.

Часто задаваемые вопросы

Почему Blender не отвечает во время рендеринга?

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

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

Почему сцена, которая обрабатывается ЦП, не обрабатывается ГП?

Причин может быть несколько, но наиболее распространенной является нехватка памяти на вашей видеокарте. Как правило, графический процессор может использовать только тот объем памяти, который находится на графическом процессоре (дополнительную информацию см. в разделе Увеличивают ли несколько графических процессоров доступную память?). Обычно это намного меньше, чем объем системной памяти, к которому может получить доступ ЦП. С устройствами CUDA, OptiX, HIP и Metal, если память графического процессора заполнена, Blender автоматически попытается использовать системную память. Это влияет на производительность, но обычно приводит к более быстрому рендерингу, чем при использовании рендеринга ЦП.

Можно ли использовать несколько графических процессоров для рендеринга?

Да, перейдите в «Настройки» ‣ «Система» ‣ «Панель вычислительных устройств» и настройте его по своему усмотрению.

Увеличат ли несколько графических процессоров доступную память?

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

Что рендерится быстрее?

Это зависит от используемого оборудования. Различные технологии также имеют разное время вычислений в зависимости от тестируемой сцены. Для получения самой последней информации о производительности различных устройств просмотрите ресурс Blender Open Data.

Сообщения об ошибках

В случае возникновения проблем обязательно установите официальные графические драйверы с веб-сайта производителя графического процессора или через диспетчер пакетов в Linux.

Неподдерживаемая версия GNU

В Linux, в зависимости от вашей версии GCC, вы можете получить эту ошибку. Список поддерживаемых версий GCC см. в Руководстве по установке Nvidia CUDA для Linux. Есть два возможных решения этой ошибки:

Используйте альтернативный компилятор

Если у вас установлена ​​более старая версия GCC, совместимая с установленной версией инструментария CUDA, вы можете использовать ее вместо компилятора по умолчанию. Это делается установкой переменной окружения CYCLES_CUDA_EXTRA_CFLAGS при запуске Blender.

Запустите Blender из командной строки следующим образом:

(Замените имя или путь совместимого компилятора GCC).

Удалить проверки совместимости

Если вышеуказанное не помогло, удалите следующую строку в /usr/local/cuda/include/host_config.h:

Это позволит Cycles успешно скомпилировать ядро ​​рендеринга CUDA при первой попытке использовать ваш GPU для рендеринга. После успешной сборки ядра вы можете запустить Blender, как обычно, и ядро ​​CUDA по-прежнему будет использоваться для рендеринга.

Ошибка CUDA: ошибка компиляции ядра

Эта ошибка может возникнуть, если у вас новая видеокарта Nvidia, которая еще не поддерживается версией Blender и установленным вами набором инструментов CUDA. В этом случае Blender может попытаться динамически собрать ядро ​​для вашей видеокарты и потерпеть неудачу.

В этом случае вы можете:

Проверьте, поддерживает ли последняя версия Blender (официальная или экспериментальная сборка) вашу видеокарту.

Если вы создаете Blender самостоятельно, попробуйте загрузить и установить более новый набор инструментов разработчика CUDA.

Обычно пользователям не нужно устанавливать набор инструментов CUDA, поскольку Blender поставляется с предварительно скомпилированными ядрами.

Ошибка: недостаточно памяти

Обычно это означает, что недостаточно памяти для хранения сцены для использования графическим процессором.

Один из способов сократить использование памяти — использовать текстуры меньшего разрешения. Например, текстуры изображений 8k, 4k, 2k и 1k занимают соответственно 256 МБ, 64 МБ, 16 МБ и 4 МБ памяти.

Драйвер Nvidia OpenGL потерял соединение с драйвером дисплея

Если графический процессор используется как для отображения, так и для рендеринга, Windows имеет ограничение на время, в течение которого графический процессор может выполнять вычисления для рендеринга. Если у вас особенно тяжелая сцена, циклы могут занимать слишком много времени графического процессора. Уменьшение размера плитки на панели «Производительность» может облегчить проблему, но единственное реальное решение — использовать отдельные видеокарты для отображения и рендеринга.

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

Ошибка CUDA: неизвестная ошибка в cuCtxSynchronize()

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

© Copyright: Эта страница находится под лицензией CC-BY-SA 4.0 Int. Лицензия. Последнее обновление: 20 марта 2022 г.

Все, что вам нужно знать об архитектуре GPU и ее развитии

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

Как мы обсуждали в разделе GPU и CPU: в чем основные различия?, GPU использует множество легковесных вычислительных ядер, использует параллелизм данных и обладает высокой пропускной способностью памяти. Хотя конкретные компоненты будут различаться в зависимости от модели, в основном большинство современных графических процессоров используют архитектуру потока с одной инструкцией и несколькими данными (SIMD). Чтобы понять, что это значит и почему это важно, давайте взглянем на таксономию Флинна.

Таксономия Флинна – это классификация компьютерных архитектур, разработанная Майклом Дж. Флинном из Стэнфордского университета. Основная идея таксономии Флинна проста: вычисления состоят из 2 потоков (поток данных и поток инструкций), которые могут обрабатываться последовательно (1 поток за раз) или параллельно (несколько потоков одновременно). Два потока данных с двумя возможными методами их обработки приводят к 4 различным категориям в таксономии Флинна. Давайте рассмотрим каждый из них.

Поток SISD — это архитектура, в которой один поток инструкций (например, программа) выполняется в одном потоке данных. Эта архитектура используется в старых компьютерах с одноядерным процессором, а также во многих простых вычислительных устройствах.

Потоковая архитектура SIMD имеет один управляющий процессор и память инструкций, поэтому в любой момент времени может выполняться только одна инструкция. Эта единственная инструкция копируется и выполняется на каждом ядре одновременно. Это возможно, поскольку у каждого процессора есть собственная выделенная память, которая обеспечивает параллелизм на уровне данных (также известный как «параллелизм данных»).

Фундаментальное преимущество SIMD заключается в том, что параллелизм данных позволяет выполнять вычисления быстро (несколько процессоров делают одно и то же) и эффективно (только одна единица инструкций).

Архитектура потока MISD фактически противоположна архитектуре SIMD. С MISD несколько инструкций выполняются над одним и тем же потоком данных. Варианты использования MISD сегодня очень ограничены. Для большинства практических приложений лучше подходит одна из других архитектур.
Множественные данные с несколькими инструкциями (MIMD)

Потоковая архитектура MIMD обеспечивает параллелизм как для потоков данных, так и для потоков инструкций. С MIMD несколько процессоров выполняют потоки инструкций независимо от разных потоков данных.

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

Показательный пример: регулировка яркости пикселя видео зависит от простой арифметики с использованием значений RGB (красный, зеленый, синий). Выполнение одной и той же функции несколько раз — это то, что необходимо для получения желаемого результата, и SIMD идеально подходит для этого случая использования. И наоборот, MIMD наиболее эффективен в приложениях, требующих выполнения нескольких дискретных вычислений, таких как системы автоматизированного проектирования (САПР).

Если вы знакомы с графическими процессорами, вы, вероятно, слышали термин «одна инструкция — несколько потоков» (SIMT). Итак, какое место SIMT занимает в таксономии Флинна? SIMT можно рассматривать как расширение SIMD. Он добавляет многопоточность в SIMD, что повышает эффективность, поскольку сокращается количество накладных расходов на выборку инструкций.

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

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

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

Поток — или ядро ​​CUDA — представляет собой параллельный процессор, который выполняет математические вычисления с плавающей запятой в графическом процессоре Nvidia. Все данные, обрабатываемые графическим процессором, обрабатываются ядром CUDA. Современные графические процессоры имеют сотни или даже тысячи ядер CUDA. Каждое ядро ​​CUDA имеет собственный регистр памяти, недоступный другим потокам.

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

Как видно из названия, блок потоков — или блок CUDA — представляет собой группу ядер CUDA (потоков), которые могут выполняться вместе последовательно или параллельно. Логическая группировка ядер обеспечивает более эффективное сопоставление данных. Блоки потоков совместно используют память для каждого блока. Текущая архитектура CUDA ограничивает количество потоков на блок до 1024. Каждый поток в данном блоке CUDA может обращаться к одной и той же общей памяти (подробнее о различных типах памяти ниже).

Следующим уровнем абстракции от блоков потоков является сетка ядра. Сетки ядра — это группы блоков потоков в одном ядре. Сетки можно использовать для параллельного выполнения больших вычислений (например, тех, которые требуют более 1024 потоков), однако, поскольку разные блоки потоков не могут использовать одну и ту же общую память, та же самая синхронизация, которая происходит на уровне блоков, не происходит в сети. уровень.

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

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

Только для чтения (RO) — это встроенная память на многопроцессорных графических процессорах с потоковой передачей данных. Он используется для конкретных задач, таких как память текстур, доступ к которой можно получить с помощью текстурных функций CUDA. Во многих случаях извлечение данных из постоянной памяти может быть быстрее и эффективнее, чем использование глобальной памяти.

Кэш уровня 1 (L1) и общая память — это встроенная память, которая совместно используется в блоках потоков (блоках CUDA). Поскольку кэш-память L1 и разделяемая память существуют на кристалле, они работают быстрее, чем кэш-память L2 и глобальная память. Фундаментальное различие между кешем L1 и общей памятью заключается в том, что использование общей памяти контролируется программным обеспечением, а кешем L1 — оборудованием.

Кэш уровня 2 доступен всем потокам во всех блоках CUDA. Кэш L2 хранит как глобальную, так и локальную память. Извлечение данных из кэша L2 выполняется быстрее, чем из глобальной памяти.

Глобальная память — это память, которая находится в DRAM устройства. Используя аналогию с процессором, глобальную память можно сравнить с оперативной памятью. Извлечение данных из глобальной памяти по своей природе медленнее, чем из кеша L2.

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

Выпущенная в 2001 году платформа Kelvin стала первой микроархитектурой нового тысячелетия от Nvidia. В оригинальной игровой консоли Xbox использовался графический процессор NV2A с микроархитектурой Kelvin. Графические процессоры серий GeForce 3 и GeForce 4 были выпущены с этой микроархитектурой.

Rankine был продолжением Kelvin, выпущенным в 2003 году и использовавшимся для графических процессоров Nvidia серии GeForce 5. У Ранкина появилась поддержка программ вершин и фрагментов, а размер видеопамяти увеличился до 256 МБ.

Curie — микроархитектура, используемая графическими процессорами серий GeForce 6 и 7, — была выпущена в качестве преемника Rankine в 2004 году. Curie удвоила объем видеопамяти до 512 МБ и стала первым поколением графических процессоров Nvidia с поддержкой декодирования видео PureVideo. .

Микроархитектура графического процессора Tesla, выпущенная в 2006 году как преемник Кюри, внесла несколько важных изменений в линейку графических процессоров Nvidia. В дополнение к архитектуре, используемой в графических процессорах серий GeForce 8, 9, 100, 200 и 300, Tesla использовалась в линейке графических процессоров Quadro, предназначенных для случаев, не связанных с обработкой графики.

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

Преемник Tesla, Fermi, был выпущен в 2010 году. Fermi представил ряд улучшений, в том числе:

  • Поддержка 512 ядер CUDA
  • 64 КБ ОЗУ и возможность разбивать кэш L1/общую память
  • Поддержка кода исправления ошибок (ECC)
  • Новая многопроцессорная архитектура потоковой передачи, известная как SMX.
  • Поддержка TXAA (метод сглаживания)
  • Увеличение количества ядер CUDA до 1536
  • Меньшее энергопотребление
  • Поддержка автоматического разгона с помощью GPU Boost
  • Поддержка GPUDirect, которая позволяла графическим процессорам — как на одном компьютере, так и с сетевым доступом друг к другу — взаимодействовать без доступа к ЦП.

Maxwell, выпущенный в 2014 году, стал преемником Fermi. По данным Nvidia, графические процессоры Maxwell первого поколения имели следующие преимущества по сравнению с Fermi:

  • Более эффективные многопроцессорные системы благодаря усовершенствованиям, связанным с разделением управляющей логики, синхронизацией, планированием инструкций и балансировкой рабочей нагрузки.
  • 64 КБ выделенной общей памяти на каждом потоковом мультипроцессоре
  • Встроенные атомарные операции с общей памятью, обеспечивающие повышение производительности по сравнению с парадигмой блокировки/разблокировки, используемой Fermi.
  • Поддержка динамического параллелизма

Pascal пришел на смену Maxwell в 2016 году. Эта микроархитектура графического процессора Nvidia предлагает улучшения по сравнению с Maxwell, такие как:

  • Поддержка связи NVLink, которая обеспечивает значительное преимущество в скорости по сравнению с PCIe.
  • Память с высокой пропускной способностью 2 (HBM2) — 4096-битная шина памяти, обеспечивающая пропускную способность памяти 720 ГБ.
  • Вычислить вытеснение
  • Динамическая балансировка нагрузки для оптимизации использования ресурсов графического процессора.

Volta — это несколько уникальная версия микроархитектуры, выпущенная в 2017 году. Хотя большинство предыдущих микроархитектур использовались в потребительских графических процессорах, графические процессоры Volta продавались исключительно для профессиональных приложений. Volta также была первой микроархитектурой, использующей тензорные ядра.

Тензорные ядра — это новый тип вычислительных ядер, которые выполняют специализированные математические вычисления. В частности, тензорные ядра выполняют матричные операции, которые позволяют использовать ИИ и глубокое обучение.

Turing был выпущен в 2018 году и, помимо поддержки тензорных ядер, включает в себя ряд графических процессоров, ориентированных на потребителя. Turing — это микроархитектура, используемая в популярных графических процессорах Nvidia Quadro RTX и GeForce RTX. Эти графические процессоры поддерживают трассировку лучей в реальном времени (также известную как RTX), которая жизненно важна для ресурсоемких приложений, таких как виртуальная реальность (VR).

Микроархитектура Ampere только начинает появляться на рынке. Ampere стремится к дальнейшему развитию высокопроизводительных вычислений (HPC) и вариантов использования ИИ. Улучшения в Ampere, включая ядра NVLink и Tensor 3-го поколения, структурную разреженность (преобразование ненужных параметров в нули для обеспечения обучения модели ИИ), ядра трассировки лучей 2-го поколения, многоэкземплярный графический процессор (MIG), позволяющий логически разделить графические процессоры A100 на отдельные изолированные и безопасные экземпляры GPU.

Мы надеемся, что вам понравился наш обзор архитектуры графических процессоров и ее развития. Мы в Cherry Servers увлечены будущим высокопроизводительных вычислений и примерами использования, которые позволят следующее поколение графических процессоров. Мы являемся лидерами в области облачных вычислений на «голом железе» и экспертами, помогающими предприятиям максимально эффективно использовать свои вычислительные ресурсы. Если вам нужно облачное решение для высокопроизводительных вычислений, свяжитесь с нами сегодня.


Мантас Левинас

Помогаем инженерам узнавать 💡 о новых технологиях и оригинальных примерах использования автоматизации ИТ для создания более совершенных систем 💻

Присоединяйтесь к сообществу Cherry Servers

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

Читайте также: