Сегодня никого не удивляет, что процессоры видеокарт обладают большей вычислительной мощностью, чем процессоры компьютеров. Эту особенность давно оценили все, кто нуждается в высокопроизводительных вычислениях, тем более, что сами производители видеокарт поддерживают такой режим их использования, выпустив библиотеки для использования видеопроцессора в так называемом General Purpose режиме.  Тенденцию подхватили и производители оборудования. На волне популярности криптовалют в продаже появились майнинговые фермы, а когда восторги поутихли, обнаружились и более сбалансированные решения для высокопроизводительных вычислений — GPU-сервера.  В этом посте поговорим о том, чем GPU-сервер отличается от майнинг-фермы и о том, как устроен GPU-сервер.  С ростом популярности криптовалют выросла потребность в майнинге, который технически представляет собой математическую операцию вычисления хэшей. Она выполняется до тех пор, пока не будет найден хэш, отвечающий некоторым требованиям. Фактор эффективности майнинга — хэшрейт — количество хэшей, вычисляемых в единицу времени.  На заре криптоэры майнинг выполнялся на обычных процессорах, но их производительность значительно уступала процессорам видеокарт. В сочетании с поддержкой GPGPU-вычислений вендорами видеокарт, которая проявилась в виде выпуска библиотек CUDA и OpenCL, это привело к тому, что следующим этапом майнинга стало использование видеокарт. Для увеличения мощности несколько видеокарт объединяли в одну систему, получая специализированное устройство — майнинговую ферму.  Сегодня встречаются три основных типа ферм для майнинга криптовалют:  Устройства на базе видеокарт. Сейчас этот метод для майнинга Bitcoin применяется все реже. Причиной тому стало появление крупных майнинговых фабрик промышленного масштаба, использующих для добычи «криптозолота» огромные мощности и новейшее дорогостоящее оборудование. Рост сложности криптосетей сделал добычу Bitcoin на видеокартах нерентабельной, поэтому сегодня на видеокартах майнят в основном альтернативные криптовалюты. Устройства на базе модулей FPGA — специализированных микросхем для майнинга, которые устанавливались в системный блок. Они не уступают в производительности видеокартам, но не нуждаются в дорогой системе охлаждения.  Системы на ASIC-процессорах, разработанные для выполнения только одной задачи — вычисления хэшей для майнинга криптовалюты. Эти системы имеют лучшее соотношение производительности и цены.  Наиболее доступная для приобретения ферма для GPU-майнинга представляет собой систему, в составе которой:  от 4 до 6 видеокарт NVIDIA или AMD в зависимости от криптовалюты, под которую ориентирована ферма; блок питания — обычно используются серверные блоки питания, которые обеспечивают достаточную мощность и надежность; материнская плата и райзеры — переходники с материнской платы на видеокарты; вентиляторы охлаждения; каркас для фермы — обычно открытый, чтобы улучшить охлаждение. Майнинг — лишь одна из задач, которые отлично решают графические процессоры. GPU отлично работает, когда нужен массовый параллелизм для одновременного выполнения множества очень похожих вычислений. Именно это отличает процессоры видеокарт от классических десктопных процессоров, которые в большей степени ориентированы на последовательное выполнение операций, а параллелизм — лишь частный и не слишком востребованный случай их применения.  Еще одна задача, в которой нужен массовый параллелизм — трассировка лучей, в результате которой получаются качественные графические рендеры. Лучи, которые выпускаются из каждой точки изображения для создания рендера, можно обрабатывать параллельно, используя все преимущества GPU.  Разумеется, параллелизм чрезвычайно востребован и в обучении нейросетей. Самая затратная операция в ходе глубокого обучения (Deep Learning) — это свертка изображений. Для расчета одного значения свертки с ядром 5 на 5 необходимы 25 умножений и 24 сложения. Но благодаря их независимости друг от друга вычислять их можно параллельно.  GPU-серверы отличаются от майнинговых ферм примерно также, как увеличительное стекло от квантового микроскопа. В GPU-серверах используются специализированные высокопроизводительные графические ускорители, например, NVIDIA A100 и H100. Графические процессоры NVIDIA H100 содержат тензорные ядра четвертого поколения и Transformer Engine с точностью FP8. Это ускоряют обучение нейросетей до 9 раз по сравнению с предыдущим поколением для моделей коллектива экспертов (MoE).  Ускорение тренировки сложных моделей нейросетей значительно увеличивает эффективность работы специалистов по обработке данных и дает возможность для более быстрого создания сервисов на основе искусственного интеллекта.  Для установки таких видеокарт требуется более серьезная платформа, чем «скелет», на базе которого собираются майнинговые фермы. Пример такой платформы — сертифицированный NVIDIA GPU-сервер Altos R685 F5. В R685 может быть установлено два процессора - например, AMD EPYC 7763, и до 8 видеокарт двойной ширины.  Среди поддерживаемых моделей видеокарт — топовые решения NVIDIA — Quadro RTX6000 24GB, Quadro RTX8000 48GB, Tesla A100, Tesla A10 24GB, Tesla A40 48GB, Tesla V100 16GB (PCIe), Tesla V100 32GB, Quadro RTX A4000 16GB, Quadro RTX A5000 24GB, Quadro RTX A6000 48GB. Сервер имеет 32 слота DIMM, в которые можно установить память DDR4-3200/2933 RDIMM/LRDIMM и 10 слотов PCI-E 4.0 x16, 8 из которых предназначены для GPU. Сетевой интерфейс представлен двумя портами 1GBASE-T LAN на базе контроллера Intel I350-AM2. Питание системы обеспечивают блоки питания 80+ Platinum мощностью 2000 Вт, зарезервированные по схеме 2+2. Дисковая подсистема имеет 24 отсека для 2,5-дюймовых накопителей.  Опцией для этой модели сервера является программный пакет Altos AI:Works, который позволяет быстро и просто распределить аппаратные ресурсы сервера между группами разработчиков, назначив той или иной группе конкретный период времени использования серверных ресурсов и конкретные ресурсы (ядра процессоров, ядра видеокарт, фиксированные объемы оперативной памяти). Высокопроизводительные вычисления — фундаментальная опора современной науки. Начиная от прогнозирования погоды и создания новых лекарств и заканчивая поиском источников энергии, ученые постоянно используют большие вычислительные системы для моделирования нашего мира и прогнозирования событий в нем. Искусственный интеллект расширяет возможности высокопроизводительных вычислений, позволяя ученым анализировать большие объемы данных и добывая полезную информацию там, где одни симуляции не могут предоставить полную картину происходящего. Обеспечить комфортную работу с высокопроизводительными вычислениями позволяют специализированные GPU-серверы, которые поддерживают топовые графические процессоры и обладают достаточным запасом надежности.