Zystem спонсировала этот пост.
В то время как подробные инструменты процессоров были доступны в течение некоторого времени, графические процессоры по -прежнему обычно рассматриваются как черные ящики. Zymtrace, новый профилировщик, предназначенный для обеспечения подробного самоанализа для процессоров и графических процессоров Nvidia, а также взаимодействия между ними, стремится решить эту проблему. Это происходит от Zystem, молодого стартапа и члена программы «Начало Nvidia» по миссии по ускорению мирового перехода к экономичным и устойчивым вычислениям.
Следуя поставку в Microsoft (Yammer), Cisco (Appdynamics) и Elastic, соучредитель и генеральный директор Zystem Israel Ogbole реализовал существующие инструменты для наблюдения за графическими процессорами были неадекватными.
«С меня и моим соучредителем и техническим директором и техническим директором, Джоэлом Хонером, что будущее вычислителя является неоднородным. Вычислительный вычислитель больше не является процессором. «Существующие инструменты наблюдаемости основаны на метриках GPU Data Center NVIDIA на уровне поверхностного уровня (DCGM) и NVML (библиотека управления NVIDIA), в которых отсутствует контекст процессора, а также подробные сведения о внутренней работе графического процессора; поэтому мы решили принять вызов, чтобы помочь внедрению оптимизации GPU и CPU, основанных на том, что мы выяснили на CPU. Огбол и Хонер были частью команды, которая создала, открытые и пожертвовал профилировщик процессора EBPF для Opentelemetry.
Они основали Zystem в прошлом году, и после первоначального выпуска в декабре они только что объявили об общественном выпуске поддержки GPU для Zymtrace, распределенного профилировщика компании с современным веб -фронтом, созданным с использованием комбинации ReactJS и Rust, составленного в WebAssembly (WASM) с помощью vernering powered by webgpu/webgl.
Несмотря на то, что на рынке есть другие инструменты профилирования графических процессоров, Ogbole считает, что Zymtrace заполняет критический пробел.
«Наше исследование показывает, что циклы холостого хода GPU в первую очередь вызваны узкими местами процессора, когда приложения становятся частично CPU Limited, когда процессор не может подавать данные достаточно быстро в графическом процессоре. Это происходит потому, что процессор переключает контексты и тратит время, ожидая нового контекста из памяти, что, в свою очередь, приводит к протоколу», — теряет время. «Наша уникальная точка продажи заключается в том, что мы можем показать пользователям весь путь кода, обеспечивая сквозную видимость от ЦП до графического процессора, чтобы вы могли видеть, где неэффективность лежит с обеих сторон».
Профилировщик GPU Zymtrace создает трассировки стека из кода Pytorch и JAX JAX и библиотеки пользовательского пространства через натуральный код и ядра CUDA, вплоть до ядра Linux. Он также отражает инструкцию по графическим процессорам, мнемонику, причинах прилавка графического процессора и смещения памяти, корреляция их обратно с точной функцией ядра CUDA, которая вызвала выполнение.
Огбол также сказал, что Zymtrace предоставляет более подробную информацию о графическом процессоре, чем многие конкуренты.
«Большинство инструментов GPU предлагают только основные метрики NVML, которые показывают проценты использования, не раскрывая то, что на самом деле происходит в вашем коде», — сказал он. «У Nvidia есть NSIGHT Compute, который обеспечивает хорошее самоанализ кода. Но оно приходит как неуклюжие настольные приложения, которые вы должны установить, и, поскольку оно не распространяется, вам нужно собирать данные с одной рабочей станции за раз, одновременно, одновременно вызывает чрезвычайно высокую производительность».
В качестве примера, на фламиграфе Zymtrace AI ниже показан задание JAX нейронной сети, которая неэффективно использует GPU из -за чрезмерных небольших операций и запуска ядра. В тренировке преобладают многочисленные крошечные вызовы ядра CUDA и передача памяти, а не устойчивые операции с вычислительными выборами, что приводит к дросселированию математического трубопровода на графическом процессоре.
Помимо наблюдаемости графического процессора
Этот уровень детализации позволяет Zymtrace решать ряд сложных вариантов использования. Наряду с возможностью обнаружить, почему графические процессоры простаивают, а узкие места ЦП, которые влияют на использование графических процессоров, это может помочь с общеизвестно сложной проблемой найти оптимальный размер партии для вывода.
Оптимальный размер партии зависит от требований уровня приложения, и это, по сути, компромисс задержки против пропускной способности. Поиск правильного размера партии обычно включает в себя много проб и ошибок. Однако в тех случаях, когда требуется максимальная пропускная способность, «Zymtrace может выявить, где ваша модель смещается от границ памяти к вычислению, снижает затраты на вывод и максимизирую пропускную способность в вашей конкретной конфигурации оборудования»,-сказал нам Огбол.
Другое место, где Zymtrace может улучшить производительность, находится вокруг запуска ядра графического процессора. Не следует путать с ядром операционной системы, «вычислительные ядра»-это процедуры, которые составлены для высокопроизводительных ускорителей, таких как процессоры цифровых сигналов (DSP), полевые массивы затвора (FPGA) или, в данном случае, графические процессоры.
Каждый запуск вычислительного ядра представляет задержку. Это связано с тем, что графический процессор сидит встал в ожидании процесса процессора, чтобы запустить следующий шаг. Тем не менее, несколько вычислительных ядер GPU могут быть объединены в один с использованием методики, называемой Fernel Fusion.
Слияние ядра позволяет повторно использовать данные, которые уже находятся в регистрах, устраняют избыточные операции по хранилище нагрузки и снижают общее давление полосы пропускания памяти. Огбол сказал: «Zymtrace идентифицирует эти возможности слияния в ваших конкретных рабочих нагрузках. Это помогает достичь до 30% улучшения производительности без изменения базовых моделей или алгоритмов».
Как работает Zymtrace
Zymtrace состоит из двух основных компонентов: профилировщика и набора бэкэнд -услуг.
Профилировщик упакован как одно двоичное/контейнерное изображение. Пользователи могут включить модуль GPU/CUDA по требованию посредством конфигурации Zymtrace. ITCollects Информация о запусках и завершениях ядра. Он также «вызывает информацию о высокой гранулярности о том, какие инструкции по графическим процессорам работают на вычислительных ядрах GPU, причинах предотвращения прогресса ядра (причинах киоска) и профили производительности ресурсных процессов на узле»,-сказал Хнер новому стеку.
Если профилирование графического процессора включено, Zymtrace использует EBPF, чтобы зацепить запуск ядра. Это возможно, потому что он использует Uprobes, механизм Linux, который может захватывать вызовы функций пользовательского пространства с минимальным трением. Zymtrace также имеет встроенные инженерные компоненты низкого уровня, которые не полагаются на EBPF для эффективного профиля общего назначения и ускоренных рабочих нагрузок с минимальными накладными расходами.
Как Zymtrace стремится уменьшить контрольно -пропускные пункты разработчиков
Zymtrace работает полностью локально. В качестве программного обеспечения (SAAS) нет программного обеспечения, хотя его можно развернуть и организовать с использованием диаграмм Zymtrace Helm за пять минут.
В настоящее время Zymtrace также доступна только для Linux Systems — ни Windows, ни поддержка MacOS не доступны. Профилировщик процессора поддерживает AMD64/x86_64 на ядре Linux 5,4 или выше и ARM64 на ядре 5,5 или выше. Профилировщик GPU поддерживается только на графических процессорах NVIDIA и требует CUDA 12.x или выше.
Стандартные цены в настоящее время начинаются с 1 доллара сша за базовый месяц плюс 0,25 долл. сша за TFLOP в месяц для графических процессоров обработки данных. Объемные скидки доступны для предприятий, профилирующих 30K+ ядер.
Продукт уже впечатляет, и Огбол стремился подчеркнуть, что Zystem только начинает. Несмотря на то, что он не был доступен в первом выпуске, он показал мне демонстрационную сборку, которая предлагает рекомендации, направленные на то, чтобы направлять инженеров, где сосредоточить свои усилия. Огбол ожидает, что это должно повысить эффективность и «уменьшить барьер для разработчиков для понимания фламграфов», визуальное представление трассов программного стека с изображением потока выполнения программы.
Zymtrace также работает над предоставлением оценок CO2 на основе типа ЦП (ARM или X86), облачного поставщика, области, где находится сервер, использование ядра процессора, розыгрыш мощности GPU и эффективность использования мощности (PUE) центра обработки данных. Методология и данные о PUE основаны на исследованиях с Cloud Carbon Print.
Вы можете попробовать продукт самостоятельно, с бесплатным пробным планом.
Zymtrace помогает командам AI/ML оптимизировать неэффективный код с процессором и графическим процессором. Благодаря развертыванию с нулевым фондом он постоянно профилирует производительность системы и обеспечивает глубокую, действенную информацию для сокращения затрат на инфраструктуру ИИ и использования энергии. Узнайте больше последних из Zystem Trending Stories YouTube.com/ThenewStack Tech движется быстро, не пропустите эпизод. Подпишитесь на наш канал YouTube, чтобы транслировать все наши подкасты, интервью, демонстрации и многое другое. Группа подпишитесь с эскизом. Чарльз Хамбл — бывший инженер -программист, архитектор и технический директор, который работал старшим лидером и руководителем как технологических, так и контент -групп. Он был главным редактором Info Quec с 2014-2020 годов и был главным редактором контейнерных решений с 2020 по 2023 год …. Подробнее от Чарльза Хамбла