-
Data: 2013-03-25 16:21:02
Temat: Re: Nowoczesne procesory - jak to z nimi jest?
Od: Edek Pienkowski <e...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Dnia Wed, 20 Mar 2013 16:10:44 -0700, M.M. wyszeptal:
> Prosty algorytm zwyczajnie nie może optymalizować. Musiałby dla wszystkich
> możliwych danych, sprawdzić wszystkie programy, wybrać te które dają poprawne
> wyniki, a z tych wybrać ten, który działa najszybciej. Dlatego im więcej
> konkretnych przykładów oprogramują twórcy kompilatorów, tym kompilator
> lepiej optymalizuje. Oprogramowanie "im więcej" zajmuje dużo czasu, dlatego
> dobry kompilator na dany procesor może wyjść jedynie z dużym opóźnieniem.
> Duże opóźnienie oznacza że na rynku będzie już inny procesor i nie warto
> pisać wyśrubowanego kompilatora, bo się przedawni zanim zostanie ukończony.
Kompilatory są śrubowane nie za pomocą generowania nowych rozszerzonych
instrukcji, przede wszystkim są to ogólnie używane metody działające
podobnie na wszystkich cpu i do tego część z nich dostosowuje generowany
kod do jakiegoś modelu konkretnego cpu. Zawsze model jest mega uproszczony.
Tak naprawdę żeby kompilator mógł wygenerować optymalny kod w takim
sensie jak mówisz musiałby to robić na docelowym sprzęcie, który informuje
odpowiedni kompilator o swoich cechach albo najlepiej daje kompilatorowi
cały projekt elektroniki w jakimś formacie... ciężko to sobie wyobrazić.
Niemniej procesory informujące kompilator (jit) o własnej strukturze
istnieją jako prototypy, zdecydowanie nie jest to dzisiejszy rynek PC.
> Podejrzewam, że jakby rozwój procesorów nagle zamarł i na każdym komputerze
> byłby ten sam procesor przez następne 10 lat, to za 2-3 lata ktoś by napisał
> kompilator generujący 2-3 razy szybszy kod. W czasach gdy się interesowałem
> tą tematyką sprawy właśnie tak się miały. Gdy wyszedł dobry kompilator na
> procesory pentium, to zwykle generował kod 3 razy szybszy niż poprzednie
> kompilatory. Podejrzewam że dziś jest podobnie, jakby wyszedł dobry kompilator
> na dany procesor, to by też była taka różnica.
Kiedys być może tak było, dzisiaj gdybyś się chciał udzielać w rozwijaniu
kompilatora miałbyś do czynienia z czymś co przypomina mistrzowską partię
szachów - choćbyś się uparł bardzo trudno jest znaleźć słabość o którą
można się zahaczyć żeby w krótkim czasie coś poprawić.
I wciąż twierdzę, że nigdy na Pentium tak nie było - to jest twierdzenie
oparte o skrajne przykłady małych fragmentów kodu.
--
Edek
Następne wpisy z tego wątku
- 25.03.13 16:22 Michoo
- 25.03.13 16:30 wloochacz
- 25.03.13 16:31 M.M.
- 25.03.13 18:40 AK
- 25.03.13 19:36 M.M.
- 26.03.13 10:21 darekm
- 26.03.13 12:25 M.M.
- 26.03.13 14:42 darekm
- 26.03.13 14:48 AK
- 26.03.13 14:57 firr kenobi
- 26.03.13 15:32 AK
- 26.03.13 15:41 M.M.
- 26.03.13 17:43 M.M.
- 26.03.13 19:02 Adam Klobukowski
- 26.03.13 19:10 M.M.
Najnowsze wątki z tej grupy
- 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
- Ada 2022 Language Reference Manual to be Published by Springer
Najnowsze wątki
- 2024-11-08 Warszawa => Head of International Freight Forwarding Department <=
- 2024-11-08 Warszawa => Key Account Manager <=
- 2024-11-08 Szczecin => Key Account Manager (ERP) <=
- 2024-11-08 Białystok => Full Stack web developer (obszar .Net Core, Angular6+) <
- 2024-11-08 Wrocław => Senior PHP Symfony Developer <=
- 2024-11-08 Warszawa => QA Engineer <=
- 2024-11-08 Warszawa => QA Inżynier <=
- 2024-11-08 Warszawa => Key Account Manager <=
- 2024-11-08 Gdańsk => Software .Net Developer <=
- 2024-11-08 Akumulator Hyundai
- 2024-11-08 Warszawa => Manager/Specialist e-commerce (B2C) <=
- 2024-11-08 Gdańsk => Specjalista ds. Sprzedaży <=
- 2024-11-08 Gdańsk => Kierownik Działu Spedycji Międzynarodowej <=
- 2024-11-08 znaj podstawe
- 2024-11-08 Chrzanów => Specjalista ds. public relations <=