2010-04-23 11 views
9

Próbuję znaleźć odniesienie dla przybliżonej liczby cykli procesora wymaganych przez różne operacje.Przybliżona liczba cykli procesora dla różnych operacji

Nie potrzebuję dokładnych liczb (ponieważ to będzie się różnić między procesorami), ale chciałbym, aby coś wiarygodnego dało dane z ballpar, które mogłem przytoczyć w rozmowie z przyjaciółmi.

Jako przykład, wszyscy wiemy, że dzielenie zmiennoprzecinkowe wymaga więcej cykli procesora, niż wykonanie bitshift.

Przypuszczam, że różnica polega na tym, że podział wynosi około 100 cykli, gdzie jako przesunięcie wynosi 1, ale szukam czegoś, co można przytoczyć, aby to potwierdzić.

Czy ktoś może polecić taki zasób?

+2

Który procesor? – nos

Odpowiedz

1

To będzie zależne od sprzętu. Najlepiej przeprowadzić testy porównawcze na konkretnym sprzęcie, który chcesz przetestować.

Poziom odniesienia pójdzie mniej więcej tak:

  • uruchomić prymitywny operację milion razy (powiedzmy, dodanie dwóch liczb całkowitych)
  • rejestrowania czasu zajęło, aby uruchomić (powiedzmy, w sekundach)
  • Pomnożyć przez liczbę cykli, które maszyna wykonuje na sekundę - da to całkowitą liczbę zużytych cykli.
  • Podziel 1000000 przez liczbę z poprzedniego kroku - da to liczbę instrukcji na cykl. Należy pamiętać, że z potoku, może to być mniej niż 1.
3

przypadku procesorów x86, zobacz Intel® 64 and IA-32 Architectures Optimization Reference Manual, prawdopodobnie Dodatek C.

Jednak to nie jest w żaden sposób łatwo zorientować się, jak wiele cykli an instrukcja wykonania jest wykonywana na nowoczesnym procesorze x86, ponieważ zależy to zbytnio od np uzyskiwanie dostępu do danych w pamięci podręcznej, dostęp wyrównany, prognozowanie rozgałęzień nie powiedzie się, jeśli w przewodniku instrukcji występuje przeciągnięcie i wiele innych rzeczy.

4

Zrobiłem małą aplikację, aby przetestować to. Bardzo przybliżeniu aplikacją w Synthmaker wolnego wydanie ... e jest pusty, numery są bardzo ok cykli

divide|e:115|10 
    mult|e: 48|10 
    add|e: 48|10 
    subs|e: 50|10 
compare>|e: 50|10 
    sin|e:135:10 

Odczyty w analizatorze cyklu różnią się znacznie od 50 do 100, zazwyczaj w jednej lub dwóch spodziewanej kwoty są to liczby reprezentujące wartości średnie, analizator cyklu jest bardzo trudnym narzędziem, ale daje dobre wyniki, obejście obliczonego przez użytkownika wykładnika w ASM, które oblicza zarówno exp, jak i bazę przy częstotliwości audio, na przykład wynosi około 800 cykli, więc Powiedziałbym, że powyższe liczby są bliskie co najmniej 50 procent. Myślałem, że podział był dużo większy! Wydaje się około dwa razy więcej. Jeśli chcesz, aby plik, który przygotowałem do uruchomienia w wersji darmowej SM, napisz do mnie, chciałem uratować exe, dlatego zrobiłem to, ale nie możesz zapisać w darmowej wersji głupiego mnie! Nie będę go kodować z kwadratu w wersji 1.17:/ ant.stewart w miejscu yahoo dotty com.

Powiązane problemy