Релиз EvoX 1.1: Теперь с поддержкой torch.compile (TorchDynamo)

Мы рады объявить о выходе EvoX 1.1, в котором представлена полная интеграция torch.compile (TorchDynamo) в качестве бэкенд-компилятора! Это обновление заменяет предыдущий подход на основе TorchScript, делая EvoX более удобным для пользователя и высокосовместимым с широкой экосистемой Python.

Используя torch.compile, EvoX теперь динамически захватывает графы вычислений во время выполнения, устраняя необходимость в ручной трассировке и автоматически оптимизируя производительность.

Что нового?

torch.compile: Более умная и гибкая компиляция

В EvoX 1.1 мы полностью переходим на torch.compile в качестве нового бэкенда компиляции. В отличие от предыдущего подхода на основе трассировки, torch.compile — который внутренне использует TorchDynamo — перехватывает выполнение Python, динамически извлекает графы вычислений и оптимизирует их в режиме реального времени.

Это означает:

l Больше никакой ручной трассировки — просто вызовите torch.compile(workflow.step), и EvoX позаботится об остальном.

l Бесшовная совместимость с Python — работает с нативными функциями Python и внешними библиотеками, такими как NumPy и SciPy.

l Лучшая производительность — оптимизированные графы вычислений обеспечивают более быстрое выполнение и лучшее использование оборудования.

l Дизайн, ориентированный на будущее — соответствует дорожной карте PyTorch, обеспечивая долгосрочную совместимость и улучшение производительности.

Почему мы перешли с TorchScript на torch.compile?

В ранних версиях EvoX полагался на методы, основанные на трассировке:

l До версии 1.0.0 использовалась трассировка JAX для извлечения графа вычислений.

l Версия 1.0.0 перешла на TorchScript, улучшив интеграцию с PyTorch.

Однако у этих методов было несколько недостатков:

l Сложность в использовании — пользователям приходилось вручную трассировать графы и заниматься сложной отладкой.

l Ограниченная совместимость — возникали трудности с динамическими рабочими процессами и функциями, не относящимися к PyTorch.

l Ограниченная гибкость — циклы, условия и другие конструкции Python не всегда корректно захватывались.

С появлением torch.compile и TorchDynamo эти проблемы остались в прошлом. Теперь EvoX оптимизирует процессы динамически, поддерживая более широкий спектр рабочих процессов с нулевыми дополнительными усилиями со стороны пользователя.

Как EvoX 1.1 облегчает вашу жизнь

l Никаких хлопот с трассировкой — все происходит за кулисами, что делает ваш код чище и проще в обслуживании.

l Работает с вашим существующим кодом на Python — нет необходимости изменять рабочий процесс для обеспечения совместимости.

l Более быстрое выполнение, лучшее масштабирование — воспользуйтесь преимуществами последних оптимизаций PyTorch для GPU и TPU.

l Готовность к будущему — оставайтесь в русле долгосрочной эволюции PyTorch, обеспечивая постоянный прирост производительности.

Обновитесь до EvoX 1.1 прямо сейчас!

EvoX 1.1 официально доступен! Обновитесь сегодня, чтобы оценить более умный, быстрый и интуитивно понятный вычислительный процесс.

Получить EvoX 1.1: GitHub

Есть вопросы или отзывы? Откройте issue на GitHub или присоединяйтесь к обсуждению в нашем сообществе. Давайте вместе расширять границы вычислительного интеллекта!

Исходный код / Сообщество / Документация

Paper: https://arxiv.org/abs/2301.12457

GitHub: https://github.com/EMI-Group/evox

Documentation: https://evox.readthedocs.io/en/latest/

QQ Group: 297969717

4.png