2010-06-02 12 views
12

Estoy tratando de optimizar algunas operaciones aritméticas mediante el uso de los conjuntos de instrucciones MMX y SSE con ensamblaje en línea. Sin embargo, no he podido encontrar buenas referencias para los tiempos y usos de estos conjuntos de instrucciones mejoradas. ¿Podría ayudarme a encontrar referencias que contengan información sobre el rendimiento, la latencia, los operandos y quizás una breve descripción de las instrucciones?Conciso instrucciones de instrucción SSE y MMX con latencias y rendimiento

Hasta ahora, he encontrado:

Intel Instrucción Referencias Intel 64 and IA-32 Architectures Developer's Manual: Vol. 2A y Intel 64 and IA-32 Architectures Developer's Manual: Vol. 2B

Intel Guía de optimización http://www.intel.com/Assets/PDF/manual/248966.pdf

Tiempos de enteros Operaciones http://gmplib.org/~tege/x86-timing.pdf

Respuesta

10

La Instrucción de referencia de Intel debería prov ¿Es una guía adecuada para lo que estas instrucciones realmente hacen ?, habría pensado. Tiene un pseudocódigo para cada uno, una descripción de su funcionamiento y, en algunos casos, incluso un pequeño diagrama de un caso representativo.

Para los tiempos, no hay una guía oficial de la que tenga conocimiento. la página de Agner Fog es el estándar de referencia:

http://www.agner.org/optimize/

+0

La guía de Agner es excelente. Exactamente lo que necesito – Joe

7

El Intel's Intrinsic Guide (en la parte inferior izquierda de la página AVX), es una herramienta de búsqueda bien organizada, donde se puede reducir por la versión SSE y/o instrucción escriba, por ejemplo, aritmética de FP o lógica de enteros.

Para cada instrucción, también muestra una tabla de latencia/rendimiento por CPU y por parámetros.

+2

Es lo mejor que he encontrado para ver qué instrucciones pueden hacer lo que quieres. Otras guías son excelentes para detallar exactamente lo que hace cada instrucción ASM, pero eso requiere tanto espacio que no puede obtener una visión general. Esperaba que hubiera algo similar a la guía de intrínsecos, pero para asm directamente. Aún así, es principalmente un mapeo 1: 1. –

1

La sincronización se encuentra en la "Guía de optimización Intel"; ver el Apéndice C para conocer el rendimiento y las latencias de cada instrucción por arquitectura de CPU.

Cuestiones relacionadas