2013-02-07 14 views
7

Jestem zaznajomiony z językiem C/C++ i językiem montażu x86/x64, ale teraz muszę studiować optymalizacje graficzne (ogólnie SSE/SSE2 i asm optymalizacje), jakie zasoby/książki/linki czy mogę użyć do poznania tych tematów? Szukałem w internecie, bez większego powodzeniaUczenie optymalizacji SSE/SSE2 i asm

+11

Ogólniej: http://www.agner.org/optimize/ wiele szczegółów na temat jak się tam optymalizacji. Aby uzyskać nieco bardziej kompletną tabelę opóźnień instrukcji, zobacz http://instlatx64.atw.hu/ – harold

+5

W ostatnim semestrze wygłaszałem kilka wykładów na temat optymalizacji procesora, w tym SIMD, i zapewne przydatne będą slajdy z wykładów. http://www.cc.gatech.edu/grads/m/mdukhan3/ –

+2

Tak jak na marginesie, mieszanie się z ASM jest zazwyczaj złym pomysłem (przynajmniej jeśli powodem jest po prostu optymalizacja), szczególnie w przypadku SSE. Używaj elementów intrinsics, które są znacznie łatwiejsze w użyciu, niezależne od platformy (jako niezależne od platformy, jak można uzyskać dzięki SSE), a co ważniejsze, bardziej wydajne, ponieważ kompilator jest prawdopodobnie znacznie lepszy w optymalizacji niż ty. Nie próbuj przechytrzyć swojego kompilatora (lub, jeśli chcesz, spróbuj * naprawdę mocno *). –

Odpowiedz

2

Marco, odpowiedź

Trzypunktowy poniżej:

  1. Jeśli chcesz dowiedzieć się zestaw szybkich sztuczek, są tam książki dostępne w ramach ogólnych tytułów zagadek algorytmicznych. Następujące dwie użyłem i zapewniam doskonałe wyzwanie, by doskonalić twoje umiejętności. Book1 to zbiór bardzo ciekawych sztuczek. Cieszyłem się również tym Book2.

Stanowiska profesora Agnera Sądzę, że to ostatnie słowo na ten temat i trzeba je przeczytać.

  1. Jeśli szukasz specyfiki jak zoptymalizować lub użyj 64 bitowy zestaw instrukcji - moje doświadczenie było to, aby utrzymać Intel Ręczne Vol 2 przydać. Możesz zadać konkretne pytanie na tym forum i zdobyć doskonałe rozwiązania. Jeśli chcesz zacząć na nieco bardziej podstawowym poziomie, istnieje doskonały zestaw tutoriali youtube przez WhatsACreel - zakres i objaśnienia są wspaniałe. Zabiera cię do AVX/AVX2 ustawia ponad 60 dziwnych sesji, zaczynając od podstaw.

  2. Nie jestem zawodowym programistą - jestem specjalistą od zarządzania przedsiębiorstwem, ale piszę 64-bitowe kody asemblerowe dla instytucji akademickich/osób, których doktorat utknął lub cierpi/niektóre takie osoby w tym czasie/w moim wolnym czasie. Myślę, że x64 jest niezwykle potężny, pięknie kompaktowy i robi to, czego nie może zrobić żaden język. Tak więc, jeśli ktokolwiek próbuje zniechęcić cię do pisania w x64, powołując się na złożoność lub cokolwiek innego, pokaż im demontaż kodu wygenerowanego przez dowolny kompilator z własnego wyboru :-) (powinien wystraszyć je wystarczająco) lub po prostu delikatnie zignoruj im.

Wszystko co najlepsze,

+1

Nietypowe jest dzwonienie do profesorów uniwersyteckich tylko po imieniu. Co by pomyślał o tym profesor Donald? –

+0

Co więcej, nie jest konieczne, aby być tak formalnym, z wyjątkiem Niemców (wtedy musisz użyć nazwiska Herr Professor Doktor). –