Con el rápido aumento de los servicios de inteligencia artificial generativa, las herramientas tradicionales de procesamiento de imágenes siguen ocupando una posición central en la industria creativa, incluido Adobe Photoshop, que se utiliza ampliamente en flujos de trabajo profesionales. Para aprovechar aún más el potencial de rendimiento de esta aplicación emblemática en la plataforma Windows, Microsoft y Adobe han lanzado una cooperación técnica profunda para acelerar significativamente una serie de operaciones clave a través de la optimización a nivel de compilador.

Photoshop es una gran aplicación de escritorio nativa escrita en C++, creada en Windows utilizando el compilador Visual C++ (MSVC) de Microsoft. Microsoft afirmó que esta cooperación se centra en operaciones que dependen en gran medida de la CPU en escenarios de usuario reales. El objetivo es hacer que las aplicaciones "se ejecuten más rápido y sin problemas" en el trabajo diario mediante ajustes en las estrategias de compilación y optimización sin cambiar las funciones principales del producto.

En los flujos de trabajo de procesamiento de imágenes modernos, muchas operaciones de imágenes complejas ya se pueden completar mediante la aceleración de la GPU, pero no todas las tareas son adecuadas para un procesamiento completo por parte de la GPU. Microsoft señaló que algunas operaciones que son extremadamente sensibles a la latencia, como la respuesta del pincel, la entrada de trazos y la apertura de archivos, todavía dependen en gran medida de la potencia informática bruta y la eficiencia de ejecución de la CPU y, por lo tanto, se han convertido en el foco de este trabajo de optimización.

Para hacer esto, el equipo de ingeniería primero habilitó el modo de compilación de "máximo rendimiento" de MSVC en el proceso de compilación para producir un ejecutable altamente optimizado para la plataforma Windows. Sobre esta base, los ingenieros de Microsoft y Adobe intentaron introducir la tradicional "Optimización guiada por perfiles" (PGO), que recopila datos de rendimiento de .exe y .dll durante las ejecuciones de prueba para acercarse al patrón de uso real, guiando así al compilador a tomar decisiones de optimización más específicas.

Sin embargo, PGO también tiene sus deficiencias en proyectos complejos a gran escala como Photoshop. Microsoft admitió francamente que, aunque PGO puede aportar beneficios, aumentará significativamente la complejidad del proceso de construcción y no es totalmente coherente con el ritmo de desarrollo y lanzamiento existente de Photoshop. Después de evaluar los costos y beneficios, las dos partes decidieron pasar a una solución nueva y más flexible: Optimizaciones guiadas por perfiles basadas en muestras (SPGO).

A diferencia del PGO tradicional, que requiere pruebas dedicadas de "cargas de trabajo representativas", SPGO aprovecha los datos de muestreo del rendimiento del hardware de las versiones publicadas en entornos del mundo real para impulsar el proceso de optimización. Este método no sólo es más flexible en la recopilación de datos y puede cubrir una variedad de máquinas de prueba y producción, sino que también puede retroalimentarse al compilador casi sin aumentar la sobrecarga del tiempo de ejecución, generando así un código de máquina más eficiente en la etapa de compilación final. Microsoft dice que SPGO normalmente puede lograr una mejora de rendimiento del 5% al ​​15% y en esta cooperación con Adobe, esta tecnología ha demostrado ser más adecuada para la integración en el sistema de ingeniería de Photoshop.

Después de confirmar la idoneidad de SPGO, Microsoft y Adobe combinaron el modo de rendimiento máximo de MSVC con SPGO para formar un nuevo proceso de optimización. Según los datos revelados por Microsoft, la versión de compilación optimizada mejora el rendimiento general en aproximadamente un 20% en sistemas Windows basados ​​en x64 y en aproximadamente un 13% en plataformas Arm. Estas mejoras afectan directamente las operaciones clave a las que los usuarios están más expuestos todos los días, como la velocidad de respuesta al dibujar con pincel, la suavidad del trazo, el tiempo de apertura de archivos y la eficiencia del procesamiento de filtros.

El ingeniero senior de desarrollo de software de Adobe, John Fitzgerald, dijo que esta optimización basada en MSVC y SPGO ha mejorado significativamente la capacidad de respuesta de las interacciones de alta frecuencia, como las operaciones de dibujo y trazo, la apertura de archivos y el procesamiento de filtros. En los flujos de trabajo creativos profesionales, estas operaciones suelen ser las partes de las que los usuarios dependen más y son más sensibles a los retrasos. Su suavidad afecta directamente si los creadores pueden mantener un ritmo creativo coherente e iterativo.

Microsoft enfatizó que su cooperación con Adobe en el proyecto Photoshop no es sólo para ajustar el rendimiento de una sola aplicación, sino que también proporciona una referencia técnica importante para optimizar otro software en la plataforma Windows en el futuro. La compañía espera que al demostrar las capacidades de MSVC en modo de máximo rendimiento y la tecnología SPGO, alentará a más desarrolladores a aprovechar sistemáticamente el potencial de rendimiento desde el nivel del compilador al crear aplicaciones para el ecosistema de Windows, proporcionando así a los usuarios una experiencia más fluida y eficiente.