Pregunta

He hecho algunas ASM línea de codificación para la SSE antes y no fue también duro, incluso para alguien que no sabe ASM. Pero observo MS también proporcionan intrínsecos que envuelven muchas de estas instrucciones especiales.

¿Hay una diferencia de rendimiento en particular, o cualquier otra razón de peso por qué uno debe usarse por encima de la otra?

Para repetir el título, esto está cubriendo específicamente intrínsecos expuestos por VC ++ 2008 para no administrado, C ++ nativo.

¿Fue útil?

Solución

En general es mejor intrínsecos de uso - es más productivo para el programador y un buen compilador (por ejemplo, Intel CPI) va a hacer un trabajo decente de la asignación de registros, la planificación de instrucciones, etc. El Microsoft compilador no es tan bueno en este sentido, pero es probable que todavía lo hace un trabajo razonable -. siempre se puede cambiar a la CPI tarde si es necesario para obtener un mejor rendimiento

Otros consejos

No hay línea de montaje en Visual C ++ para x64. Intrínsecos se pueden utilizar en x64 también. Si alguna vez quieres portar su código de 64 bits, que tendrá que utilizar los intrínsecos.

intrínsecas son idénticos a sus equivalentes instrucciones de montaje y se debe utilizar si es posible - el compilador sabe que traducir directamente, no hay ninguna diferencia de rendimiento.

Use intrínsecos.

Uso de montaje dará lugar generalmente a varios días de trabajo sin parar, sólo para descubrir que el compilador bate su mejor actuación en un 5%. (5% si usted es realmente bueno;. Más probable 30%)

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