Мы рады объявить о выпуске 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 или присоединяйтесь к обсуждению в нашем сообществе. Давайте вместе раздвигать границы вычислительного интеллекта!
Исходный код / Сообщество / Документация
Статья: https://arxiv.org/abs/2301.12457
GitHub: https://github.com/EMI-Group/evox
Документация: https://evox.readthedocs.io/en/latest/
QQ-группа: 297969717
