La compañía NVIDIA ha liderado en parte la carrera GPGPU al conseguir integrar en sus gráficas una arquitectura capaz de acelerar contenidos. PhysX es una implementación que acelera la física de juegos y la mejora es más que notable al correr sobre una gráfica NVIDIA compatible con CUDA. La compañía ofrece la posibilidad de ejecutar PhysX sobre CPU en ausencia de gráfica NVIDIA compatible, pero según parece, no está nada optimizado, hecho que beneficia a la propia compañía.

Está claro que NVIDIA y PhysX marcan la diferencia en juegos que lo implementan, ya que la mejora no es sólo gráfica, sino en cuanto a experiencia general del juego, y realidad de movimientos, explosiones, etc. Sin embargo cuando un juego con soporte PhysX no se ejecuta en un sistema con gráfica NVIDIA compatible con PhysX el rendimiento, como es de esperar es menor, ¿pero cuánto?.

Nvidia estropea PhysX, por software claro

Según la investigación de David Kanter de Real World Technologies, NVIDIA podría estar "haciendo trampa" a la hora de comparar las diferencias entre CPU y GPU ejecutando PhysX en un claro intento de sacar ventaja. La implementación PhysX que ofrece la compañía para CPU, es decir cuando PhysX corre vía software, está programada utilizando código x87.

Para que os hagáis una idea, estamos hablando de código que Intel dejó de utilizar en 2005 y que ha sido plenamente reemplazado por instrucciones SSE, soportadas por Intel en el año 2000 y por AMD en el año 2003. El código x87 es lento, y sigue soportado en las CPUs actuales por cuestión de retrocompatibilidad con aplicaciones antiguas. Resumiendo, no hay ninguna razón técnica para que NVIDIA ejecute PhysX sobre CPU en x87.

La actualización a SSE aceleraría el proceso de manera notable, aunque, claro, quizá eso no interese a la compañía.



FUente