-
Data: 2013-03-25 10:07:25
Temat: Re: Nowoczesne procesory - jak to z nimi jest?
Od: "M.M." <m...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu poniedziałek, 25 marca 2013 08:08:34 UTC+1 użytkownik firr kenobi napisał:
> co do kompilatorow to tez moze byc wlasnie
> tak ze intel icc optymalizuje lepiej niz gcc
> i vcc, np w tym benchmarku
> http://benchmarksgame.alioth.debian.org/u32/performa
nce.php?test=mandelbrot
> najszybszy okazal sie intelowy fortran i to
> prawie dwa razy szybszy niz c w gcc :/
No proszę. Tak podejrzewałem, ale nie wiedziałem.
Teraz widać, różnice dwa razy to coś czego można
się spodziewać.
Pamiętam jak kiedyś dobierałem drobiazgi implementacyjne w
programie szachowym na bardzo wczesnym etapie realizacji.
Chodziło dosłownie o przesuwanie bierek po planszy i o
update kilku pomocniczych statystyk przy okazji przesuwania.
Kompilowałem gcc, wtedy jeszcze na platformę 32bitową. Od
czasu do czasu zauważałem, że po jakiejś drobnej zmianie
kompilator wygenerował kod 2-3 razy szybszy. Dosłownie 50
różnych pomysłów, różnice w wydajności pomiędzy pomysłami
o ułamki procenta, a czasami/nagle różnica o 200-300%. Taki
kod skompilowany potem przy pomocy MSVC++ działał o wiele
wolniej. To było tak, jakbym dobrał konstrukcje językowe,
które kompilator gcc akurat umie zoptymalizować. Więc kilka
przesłanek na to jest, że jakby sztab fachowców przysiadł, to
by napisał kompilator 2-3 razy wydajniejszy.
> - nie przypuszczam zeby fortran byl szybszy od c
Nie zdziwiłbym się, jakby napisanie optymalizatora do
frotrana/ady, było łatwiejsze niż do C/C++.
> wiec wychodziloby ze roznica wynika z
> optymalizacji kodu w asemblerze (icc vs gcc)
No chyba tak, chyba potwierdzają się moje przypuszczenia.
> jest to pewnego rodzaju hipoteza ale jak kogos to
> interesuje to powinien pomierzyc lub conajmniej poczytac
> jakies w miare aktualne porownania bo
> pewnie sa jakies w necie (i moglby wpisac
> wyniki na grupe)
Liczyłem że ktoś bardzo doświadczony w asemblerze coś konkretnego
powie w tym wątku, na razie wszyscy łącznie ze mną bazujemy na
przypuszczeniach.
Przed laty wyszła książka "procesory pentium, narzędzia optymalizacji"
autorstwa Micheal L. Schmit. W którymś z rozdziałów pokazał ręcznie
zoptymalizowaną procedurę w asemblerze, po czym dodał coś w rodzaju
"nie sądzę aby jakikolwiek kompilator zdołał tak zoptymalizować". Myślę,
że to stwierdzenie nadal w jakimś stopniu jest aktualnie, ciekawe tylko w
jakim :)
Odbiegając od tematu...
Ostatnio napisałem w proceduralnym C++ prosty program optymalizacyjny.
Prosty, bo kodu tam raptem 1000 linijek, z czego kod obliczeniowy to
może 400 linii. Kod jest bardzo sprytnie zoptymalizowany, ale patrzę na
niego, patrzę na podejrzane wyniki i się zastanawiam... czy tam na pewno
nie ma błędu? No i właśnie dziś przepisuję w wysokopoziomowym C++,
nafaszerowanym klasami i vectorami... co byłoby gdybym miał ten kod
napisany w asemblerze? Pewnie bym po pierwszej procedurze miał dosyć i
bym wrócić do wysokopoziomowego C++ albo do Javy :)
Pozdrawiam
>
>
>
> mnie osobiscie jak na dzis bardziej interesuje
>
> poznanie rwguł optymalizacji kodu samemu niz
>
> posiadanie hiperoptymalizujacego kompilatora,
>
> oczywiscie wolalbym raczej by kompilator ktorego
>
> uzywam generowal na zadanie lepszego asma
>
> ale nawet bardziej interesuje mnie reczna
>
> optymalizacja - umiem optymalizowac kody w c
>
> choc chcialbym sie nauczyc robic to lepiej
>
> i troche umiem optymalizowac na poziomie asma
>
> (ale tutaj slabo - tez chcialbym sie nauczyc
>
> optymalizowac lepiej )
Następne wpisy z tego wątku
- 25.03.13 10:30 Adam Przybyla
- 25.03.13 10:57 AK
- 25.03.13 11:52 firr kenobi
- 25.03.13 13:48 M.M.
- 25.03.13 14:08 M.M.
- 25.03.13 14:17 wloochacz
- 25.03.13 14:48 AK
- 25.03.13 14:51 M.M.
- 25.03.13 15:07 AK
- 25.03.13 15:12 AK
- 25.03.13 15:35 M.M.
- 25.03.13 15:53 AK
- 25.03.13 16:03 Edek Pienkowski
- 25.03.13 16:10 Edek Pienkowski
- 25.03.13 16:15 AK
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-12-11 Motodziennik #305 Nowy ELEKTRYK za 350 złotych miesięcznie? Kreatywne kredytowanie problemów
- 2024-12-11 Warszawa => Spedytor Międzynarodowy <=
- 2024-12-11 Katowice => Key Account Manager (ERP) <=
- 2024-12-11 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-12-11 Idzie zima...czyli zaczynamy TETRIS :)
- 2024-12-11 Warszawa => Analityk w dziale Trade Development (doświadczenie z Powe
- 2024-12-11 Warszawa => Full Stack web developer (obszar .Net Core, Angular6+) <=
- 2024-12-11 Warszawa => Full Stack .Net Engineer <=
- 2024-12-11 Dyski HDD SATA 2,5'' >2TB
- 2024-12-11 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2024-12-11 Warszawa => System Architect (Java background) <=
- 2024-12-11 Warszawa => System Architect (background deweloperski w Java) <=
- 2024-12-10 sprężyny przednie ściśnięte
- 2024-12-10 Warszawa => SEO Specialist (15-20h tygodniowo) <=
- 2024-12-10 Warszawa => Senior Frontend Developer (React + React Native) <=