¿Cuánto debería preocuparme por el compilador Intel C ++ que emite un código subóptimo para AMD?

Siempre hemos sido una tienda de Intel. Todos los desarrolladores usan máquinas Intel, la plataforma recomendada para los usuarios finales es Intel, y si los usuarios finales desean ejecutar AMD es su punto de observación. Tal vez el departamento de pruebas tenía una máquina AMD en algún lugar para verificar que no enviamos nada completamente roto, pero eso fue todo.

Hasta hace unos años, solo utilizamos el compilador MSVC y, dado que en realidad no ofrece muchas opciones de ajuste del procesador más allá del nivel SSE, a nadie le preocupaba demasiado si el código podría favorecer a un proveedor x86 sobre otro. Sin embargo, más recientemente hemos estado usando mucho el compilador Intel. Nuestras cosas definitivamente obtienen algunos beneficios de rendimiento significativos (en nuestro hardware Intel), y sus capacidades de vectorización significan menos necesidad de ir a asm / intrínsecos. Sin embargo, la gente está empezando a ponerse un poco nerviosa sobre si el compilador de Intel podría no estar haciendo un buen trabajo para el hardware AMD. Ciertamente, si ingresa a las bibliotecas Intel CRT o IPP, verá muchas consultas de cpuid para aparentemente configurar tablas de salto para funciones optimizadas. Sin embargo, parece poco probable que Intel tenga muchos problemas para hacer algo bueno por los chips AMD.

¿Puede alguien con alguna experiencia en esta área comentar si es un gran problema o no en la práctica? (Todavía tenemos que hacer pruebas de rendimiento en AMD nosotros mismos).

Update 2010-01-04: Bueno, la necesidad de soportar AMD nunca se volvió lo suficientemente concreta como para que yo mismo pudiera hacer alguna prueba. Hay algunas lecturas interesantes sobre el temaaqu, aqu yaqu aunque

Update 2010-08-09: Parece que el acuerdo Intel-FTC tiene algo que decir sobre este tema: consulte la sección "Compiladores y trucos sucios" deEste artícul.

Respuestas a la pregunta(14)

Su respuesta a la pregunta