Мы рады объявить о выходе 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
