Представляя ускоренные вычисления как простую, доступную и удаленную услугу

Эта статья - третья из трех. Вот 1 и 2.

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

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

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

Этот скрытый мир неэффективности GPU не является широко обсуждаемой темой.

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

Почему это почти секрет?

Причина 1: Практическая социальная динамика внутри бизнес-организации, которую здесь упоминает Тимоти Прикетт Морган:

«… Неэффективность [GPU] допускается, даже если о ней мало говорят. Никто не говорит генеральному директору или финансовому директору, что суперкомпьютер, имеющий впечатляющую пиковую теоретическую производительность, на самом деле используется недостаточно ».

Представьте, как мог бы пройти этот разговор:

ИТ-директор: Вы знаете, как мы много тратили на GPU? Нам нужно больше. Фактически, нам нужно будет продолжать увеличивать наши расходы на GPU, как это [баллы], в течение следующих нескольких лет, чтобы поддержать бизнес-план.

Финансовый директор: Ой. Я никак не могу оправдать все это. Вы можете получить половину того, о чем просите.

ИТ-директор: [начинает уходить] кстати, наши графические процессоры работают только с 10-15% загрузкой. Но я ничего не могу с этим поделать, просто все устроено.

Финансовый директор: Вас уволили.

Причина 2: статус-кво технических ограничений, то есть «я ничего не могу с этим поделать, просто все работает».

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

Подвергая сомнению статус-кво тесной связи

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

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

Если бы я сказал: «Вам следует покупать машину без двигателя - у машины есть много возможностей ускорения, которые просто не используются!» в лучшем случае вы были бы настроены весьма скептически.

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

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

Как? Мы собираемся сделать графические процессоры объединяемыми, совместно используемыми и легкодоступными.

Чтобы это трансформационное пошаговое изменение было жизнеспособным, наше решение должно делать четыре вещи:

  1. Освободитесь от короткого поводка PCIe
  2. Обеспечивает функциональность, неотличимую от обычного использования графического процессора
  3. Разрешить нескольким рабочим нагрузкам использовать один и тот же графический процессор
  4. Используйте только программное обеспечение

Вот почему это необходимо:

  1. Освобождение от PCIe

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

2. Быть графическим процессором с точки зрения приложения

Представьте себе, что вместо того, чтобы вести себя как обычный графический процессор, у нашей технологии есть подводные камни: она работает только для некоторых API, она работает только в некоторых операционных системах, она работает только как часть определенной более крупной среды развертывания, требует сложной настройки и обслуживания, приложений которые его используют, должны реализовать SDK ... вы поняли. Любая из этих ошибок сделала бы его ограниченным «точечным решением» и обрекла бы его на более узкое существование - без универсальной применимости, которая сделала бы его повсеместным и высокоэффективным.

3. Превышение подписки на графический процессор с несколькими рабочими нагрузками

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

4. Только программное обеспечение

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

Итак, мы определили тенденции, проблемы и какое идеальное решение должно дать - что мы на самом деле создаем? Естественно, я пристрастен, но мы чувствуем, что в Juice Labs мы на правильном пути. Наше решение:

Освободитесь от PCIe:

Замените разъем PCIe программно определяемым эластичным конвейером, который использует стандартную сеть, тем самым отделяя клиента (пространство ОС + приложения, где требуется графический процессор) от сервера (с которого предоставляется мощность графического процессора)

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

Быть графическим процессором:

Замените обычный драйвер графического процессора на клиенте - часть программного обеспечения, которое позволяет пространству ОС + приложения взаимодействовать с графическим процессором - нашим собственным устанавливаемым драйвером, который «выглядит идентично», но вместо этого направляет рабочие нагрузки в наш конвейер. .

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

Несколько клиентов на сервер:

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

Только программное обеспечение:

Обратите внимание, что мы не представили никакого нового оборудования! Здесь нет ничего лишнего.

Осуществление этого видения

Объединив все эти элементы, мы предоставляем готовое решение без кода и добавления оборудования, которое позволяет нативным приложениям получать доступ к необходимому графическому процессору из любого места - в любой операционной системе, в любой среде развертывания; для любого устройства, компьютера или центра обработки данных; в облаке, локально или на периферии - с одновременным объединением и совместным использованием ресурсов для повышения коэффициента использования почти на 100%.

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

… Но ускоренные вычисления полезны буквально везде, например, на периферии мобильных устройств и Интернета вещей:

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

Стив Голик - соучредитель Juice Labs, стартапа, стремящегося сделать поток вычислительной мощности таким же простым, как электричество.