Lanzamiento de EvoX 1.1: Ahora con torch.compile (TorchDynamo)

¡Nos emociona anunciar el lanzamiento de EvoX 1.1, que introduce la integración completa de torch.compile (TorchDynamo) como compilador de backend! Esta actualización reemplaza el enfoque anterior de TorchScript, haciendo que EvoX sea más fácil de usar y altamente compatible con el ecosistema de Python en general.

Al aprovechar torch.compile, EvoX ahora captura los grafos de computación dinámicamente en tiempo de ejecución, eliminando la necesidad de un rastreo manual mientras optimiza el rendimiento de forma automática.

¿Qué hay de nuevo?

torch.compile: Compilación más inteligente y flexible

En EvoX 1.1, adoptamos plenamente torch.compile como el nuevo backend de compilación. A diferencia del enfoque anterior basado en rastreo, torch.compile —que internamente utiliza TorchDynamo— intercepta la ejecución de Python, extrae dinámicamente los grafos de computación y los optimiza en tiempo real.

Esto significa:

l No más rastreo manual — Solo llama a torch.compile(workflow.step) y EvoX se encarga del resto.

l Compatibilidad fluida con Python — Funciona con funciones nativas de Python y librerías externas como NumPy y SciPy.

l Mejor rendimiento — Los grafos de computación optimizados resultan en una ejecución más rápida y una mejor utilización del hardware.

l Diseño preparado para el futuro — Se alinea con la hoja de ruta de PyTorch, asegurando compatibilidad a largo plazo y mejoras de rendimiento.

¿Por qué pasar de TorchScript a torch.compile?

En versiones anteriores, EvoX dependía de métodos basados en rastreo:

l Pre-1.0.0 utilizaba JAX tracing para la extracción de grafos de computación.

l v1.0.0 cambió a TorchScript, mejorando la integración con PyTorch.

Sin embargo, estos métodos tenían varias desventajas:

l Complejos de usar — Los usuarios tenían que rastrear manualmente los grafos y lidiar con depuraciones intrincadas.

l Compatibilidad limitada — Presentaba dificultades con flujos de trabajo dinámicos y funciones ajenas a PyTorch.

l Flexibilidad restringida — Los bucles, condicionales y otras construcciones de Python no siempre se capturaban correctamente.

Con torch.compile y TorchDynamo, estos problemas han desaparecido. EvoX ahora optimiza dinámicamente, admitiendo una gama más amplia de flujos de trabajo con cero esfuerzo adicional por parte de los usuarios.

Cómo EvoX 1.1 te facilita la vida

l Sin complicaciones con el rastreo — Todo sucede tras bambalinas, haciendo que tu código sea más limpio y fácil de mantener.

l Funciona con tu código Python existente — No es necesario modificar tu flujo de trabajo para lograr compatibilidad.

l Ejecución más rápida, mejor escalabilidad — Benefíciate de las últimas optimizaciones de PyTorch para GPUs y TPUs.

l Listo para el futuro — Mantente alineado con la evolución a largo plazo de PyTorch, asegurando ganancias continuas de rendimiento.

¡Actualiza a EvoX 1.1 ahora!

¡EvoX 1.1 ya está disponible oficialmente! Actualiza hoy para experimentar un flujo de trabajo computacional más inteligente, rápido e intuitivo.

Obtén EvoX 1.1: GitHub

¿Tienes preguntas o comentarios? Abre un issue en GitHub o únete a nuestra discusión comunitaria. ¡Ampliemos juntos los límites de la inteligencia computacional!

Código fuente / Comunidad / Documentación

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