2010-06-02 13 views
12

Próbuję zoptymalizować niektóre arytmetyczne przy użyciu zestawów instrukcji MMX i SSE z wbudowanym zestawem. Jednak nie byłem w stanie znaleźć dobrych referencji dotyczących czasu i zastosowań rozszerzonych zestawów instrukcji. Czy możesz mi pomóc znaleźć odniesienia, które zawierają informacje o przepustowości, opóźnieniach, operandach i być może krótkie opisy instrukcji?Zwięzłe instrukcje instrukcji SSE i MMX z opóźnieniami i przepustowością

tej pory znalazłem:

Intel Instruction Referencje Intel 64 and IA-32 Architectures Developer's Manual: Vol. 2A i Intel 64 and IA-32 Architectures Developer's Manual: Vol. 2B

Intel Optimization Guide http://www.intel.com/Assets/PDF/manual/248966.pdf

Timings przedsięwzięć Integer http://gmplib.org/~tege/x86-timing.pdf

Odpowiedz

10

Dyspozycja Odniesienia Intel powinien prov czy jest to odpowiedni przewodnik po tym, co te instrukcje faktycznie robią, pomyślałbym? Ma pseudokod dla każdego, opis jego działania, aw niektórych przypadkach nawet mały diagram reprezentatywnego przypadku.

Jeśli chodzi o czasy, nie ma oficjalnego przewodnika, o którym wiem. Strona Agner Fog jest średnia referencyjna:

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

+0

Przewodnik po Agnerze jest świetny. Dokładnie to, czego potrzebuję. – Joe

7

Intel's Intrinsic Guide (w lewym dolnym rogu strony AVX), jest dobrze zorganizowany przeszukiwać narzędzie, którym można zawęzić przez wersję SSE i/lub instrukcji typ, np. FP arytmetyczna lub Integer Logical.

Dla każdej instrukcji wyświetla również tabelę opóźnień/przepustowości według CPU i parametrów.

+2

To najlepsza rzecz, jaką odkryłem, aby zobaczyć, jakie instrukcje mogą robić, co chcesz. Inne instrukcje doskonale opisują dokładnie to, co robi każda instrukcja ASM, ale zajmuje to tyle miejsca, że ​​nie można uzyskać ogólnego przeglądu. Miałem nadzieję, że będzie coś podobnego do przewodnika wewnętrznego, ale bezpośrednio dla asma. Wciąż jest to mapowanie 1: 1. –

1

Harmonogram znajduje się w "Podręczniku optymalizacji Intela"; patrz Załącznik C, aby sprawdzić przepustowość i opóźnienia dla każdej instrukcji na architekturę procesora.

Powiązane problemy