Pull to refresh

Comments 9

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

Почему python, а не go

А почему не плюсы с CUDA? Или вся мощь железа не интересует?

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

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

А что вы думаете об использовании Nvidia Triton? Стандартное решение по нынешним временам)

Лайк за картинки с вращающимся сыром 🧀

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

А как это должно работать?

Запустить тритон в сайдкаре и по grpc в него ходить? А зачем тогда акведук в этой цепочке?

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

1) Если ходить в triton по grpc, то снова нужна серриализация картинок.

2) Батчинг есть и на стороне тритона -- если использовать его вместе с акведуком, то будет двойной батчинг?

3) Кажется, что из плюшек Aqueduct -- это ассинхронная подгрузка изображений по ссылке. А triton, на сколько я понимаю, этого не умеет и ожидает, что все данные будут переданы в запросе

---

Статья была бы более полной, если бы вы опубликовали сравнение или бенчмарки: Aqueduct / Aqueduct + Triton / Triton / ...

Sign up to leave a comment.

Articles