Pregunta

He añadido a la configuración x64 ++ proyecto de mi C para compilar la versión de 64 bits de mi aplicación. Todo se ve muy bien, pero el compilador da la siguiente advertencia:

`cl : Command line warning D9002 : ignoring unknown option '/arch:SSE2'`

¿Hay SSE2 optimización realmente no está disponible para proyectos de 64 bits?

¿Fue útil?

Solución

Parece ser todos los procesadores de 64 bits tiene SSE2. Desde la opción de compilador siempre activada por defecto sin necesidad de cambiar de forma manual.

Wikipedia :

  

instrucciones SSE : La arquitectura AMD64 original adoptado el SSE de Intel y SSE2 como las instrucciones básicas. se añadieron instrucciones SSE3 en abril de 2005. SSE2 reemplaza IEEE de precisión de 80 bits del conjunto de instrucciones x87, con la posibilidad de elegir entre IEEE de 32 bits o las matemáticas de punto flotante de 64 bits. Esto proporciona operaciones de punto flotante compatibles con muchos otros procesadores modernos. Las instrucciones SSE y SSE2 también se han extendido a operar en los ocho nuevos registros XMM. SSE y SSE2 están disponibles en el modo de 32 bits en los procesadores x86 modernos; Sin embargo, si se utilizan en los programas de 32 bits, los programas sólo funcionan en sistemas con procesadores que tienen la característica. Este no es un problema en los programas de 64 bits, como todos los procesadores AMD64 han SSE y SSE2, por lo que el uso de las instrucciones SSE y SSE2 en lugar de instrucciones x87 no reduce el conjunto de máquinas en las que los programas de 64 bits se pueden ejecutar . SSE y SSE2 son generalmente más rápido que, por duplicado y la mayor parte de las características de las instrucciones x87 tradicionales, MMX y 3DNow!.

Otros consejos

entiendo la advertencia que aparece si elige SSE2, aunque incluya su todavía tonta. Sin embargo sigue recibiendo el aviso si selecciona / arch: AVX. Estoy seguro de que obtendrá fija con SP1. Es sólo un poco de spam y una molestia.

El compilador opción / arch: AVX no funcionará en viejas CPUs por lo tanto, es necesario asegurarse de su CPU lo soporta. Me encontré con estos temas cuando tuve que volver a compilar el paquete 1.12 tensorflow para mi vieja CPU Xeon que no soporta.

He encendido / arch: SSE2 (como Kirill) publicado anteriormente pero conseguir exactamente el mismo problema. El compilador de Microsoft emite una advertencia (INFO) que esta opción será ignorada.

Command line warning D9002 : ignoring unknown option '/arch:SSE2'

A partir de la documentación de Microsoft mi entendimiento es que esta opción sólo está disponible para x86 y que no tiene sentido para mí tampoco.

Sin embargo en MSDN dice:

/arch:SSE and /arch:SSE2 are only available when you compile for the x86 platform.

y que se utiliza en la SSE x64 de todos modos. De ahí que acaba de quitar la opción ahora.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top