¿Por qué Intel apesta en los juegos de PC?

Esta discusión gira en torno a un correo electrónico de un lector de 2007es.com técnicamente astuto. Lo incluyo como parte de mi columna semanal en lugar de como una historia estándar de 2007es.com, principalmente para que la gente piense en el tema. Tenga en cuenta que proviene de una sola fuente, discutiendo un solo juego. Pero pensamos que era lo suficientemente interesante como para abrirnos a una discusión más amplia.

A principios de la semana pasada, recibimos un correo electrónico de Igor Levicki, comentando sobre el artículo principal de Jason Cross,. Levicki no cuestionaba la conclusión de Jason: que AMD supera a Intel por amplios márgenes en las pruebas de juegos. Pero aparentemente decidió profundizar un poco más. Esto es lo que hizo, en sus propias palabras:





Me intrigó por qué las CPU de Intel tienen un rendimiento inferior en algunos juegos y en otros están a la par con AMD.

Por lo tanto, he realizado la ingeniería inversa del ejecutable del juego Battlefield 2 y llego a las siguientes conclusiones:



  1. Fue compilado usando el compilador Visual Studio 2003 C ++.
  2. Fue compilado en modo combinado casi sin optimizaciones.

Nos dirigimos al sitio web MSDN de Microsoft y obtuvimos este pequeño dato sobre modo mixto:

“Cuando no se especifica la opción / Gx, el compilador toma de forma predeterminada / GB, modo de optimización“ combinado ”. En las versiones 2002 y 2003 de Visual C ++ .NET, / GB es equivalente a / G6, que se dice que optimiza el código para Intel Pentium Pro, Pentium II y Pentium III '.

Pero Microsoft recomienda que los escritores de código utilicen / G7 al diseñar código para los sistemas Pentium 4 y AMD Athlon. Nuevamente, aquí hay más información del sitio web de MSDN sobre el tema:



“La mejora del rendimiento lograda compilando una aplicación con / G7 varía, pero cuando se compara con el código generado por Visual C ++ .NET 2002, no es inusual ver una reducción del 5 al 10 por ciento en el tiempo de ejecución de los programas típicos, e incluso del 10 al 15 por ciento para programas que contienen mucho código de punto flotante. El rango de mejora puede variar enormemente y, en algunos casos, los usuarios verán una mejora de más del 20 por ciento al compilar con / G7 y ejecutar en procesadores de última generación.

El uso de / G7 no significa que el compilador producirá código que solo se ejecuta en los procesadores Intel Pentium 4 y AMD Athlon. El código compilado con / G7 seguirá ejecutándose en generaciones anteriores de estos procesadores, aunque puede haber una pequeña penalización en el rendimiento. Además, hemos observado algunos casos en los que la compilación con / G7 produce un código que se ejecuta más lento en AMD Athlon '.

Esto no está claro en este momento. La referencia de Microsoft a 'AMD Athlon' puede referirse a la línea más antigua de CPU Athlon de 32 bits (generación K7): Athlon XP y anteriores. Los Athlon 64 de 90 nm actuales son totalmente compatibles con las instrucciones SSE, SSE2 y SSE3 de Intel.

El documento de MSDN vinculado anteriormente continúa sugiriendo que el modificador / G7 producirá secuencias que pueden tener más instrucciones, pero que se ejecutan de manera más eficiente en el Pentium 4 al evitar las instrucciones de alta latencia, como IMUL. Continuado…

Copyright © Todos Los Derechos Reservados | 2007es.com