Autor: Andrzej Karpinski (karpio_at_fenix.xyz.lublin.pl)
Data: Thu 17 Jul 1997 - 17:38:56 MET DST
Witam!
> >>Oczywiscie nikt nie smie watpic, ze wszyscy uzywaja windoze, dll-e i beda
> >>pokornie stosowac sie do zalecen naszego kochanego dobroczyncy.
> >binutils.2.8.1.xx oraz czesc bibliotek linuxowych oczywiscie mozna sobie
> >sciagnac w wersjach mmx optimized, ale tego kolega juz nie zauwaza, bo
Nie odpowiedziales.. Nie tylko na to zreszta.. Przykre, ze tak sie
zachowujesz natrafiajac na rzeczowe odparcie Twoich zlosliwostek.
[dotyczy pmaddw]
> Mnozy 4 16-bitowe pary, a potem dodaje po 2 64-bitowe wyniki.
> Ile trwa taktow - nie wiem. Intel nie raczyl zamiescic tej jakze malo waznej
> informacji w pdf-ie, ktorego sciagnalem.
> Przyjmuje na wiare, ze trwa krocej niz bez MMX'a.
> Ale jak czesto mi sie to przyda ? Raz na 1e4 instrukcji ?
1. Ile trwa to skomplikowane zadanie. Od momentu pobrania instrukcji przez
procesor do momentu zakonczenia wykonywania 3 takty. Z tym, ze jest to
przetwarzane w potoku, dlatego w czasie tych 3ch taktow procesor moze
zajmowac sie jeszcze 3ma innymi instrukcjami. Dlatego biorac pod uwage
efektywnosc potoku jest to 1 takt. Biorac pod uwage, ze PentiumMMX ma dwa
potoki, wychodzi 0.5 takta na instrukcje, bo procesor potrafi wykonac w
szczegolnym przypadku (gdy dane nie operuja na tych samych rejestrach) 2
takie instrukcje na kazdy takt. W chwili obecnej nie mozna po prostu podac
czasu wykonania instrukcji, bo prawidlowa odpowiedzia na pytanie ile cos
trwa jest jedynie "to zalezy".
2. Zapoznaj sie dokladnie z lista rozkazow MMX - 60% rozkazow wykonuje
instrukcje typu pmaddw, ktore wczesniej musiales wykonywac na:
a) wielu instrukcjach
b) kawalkach rejestrow
co zabieralo wiecej czasu. Nad taka akurat lista rozkazow pracowali ludzie
znacznie lepsi w temacie niz ja czy nawet Ty, i wierz mi, sa tak
pomyslane, by jednak przydawaly sie w obrobce chociazby dzwieku czy
grafiki. Takie rozkazy istotnie wystepuja srednio w mniej niz 1% kodu, za
to ten kod wykonuje dosc wazne operacje - obsluge grafiki, wyswietlania i
inne rzeczy. Jest wiec stosowany w najbardziej czasochlonnych operacjach,
ktore ma przyspieszac, do czego wlasnie sluzy. Mam nadzieje, ze uwierzysz
mi na wiare, ze istnieje wiecej instrukcji SIMD (wlasnie na tym to polega
- pobierasz raz instrukcje, ktora wykonuje wiele dzialan (pare mnozen,
dodawanie, etc - jednoczesnie) na duzych co by nie mowic jak na tej klasy
procesory, strukturach danych) tego typu oraz ze istotnie w zastosowaniach
do ktorych byly pomyslane daja istotne przyspieszenie. Nie wiem czy
powinienem sie powolywac na IMB i przytaczac wyniki testow dla procesorow
MMX i noMMX dla roznych operacji na kodzie MMX-optimized. Niestety widac
roznice.
> W nowej wersji proponuje dolozenie nastepujacego przydatnego rozkazu:
> a0=sin(b0+cos(c0*ln(pi^d0)))
> a1=sin(b1+cos(c1*ln(pi^d1)))
> a2=sin(b2+cos(c2*ln(pi^d2)))
> a3=sin(b3+cos(c3*ln(pi^d3)))
Jesli uzasadnisz istnienie takiej instrukcji to Intel pewnie ja wprowadzi.
Jesli sie okaze, ze dzieki jej istnieniu mozna przyspieszyc nie wiem..
ogolnie: przetwarzanie 3D bo akurat wykonuje sie srednio 15 takich
operacji na kazdy liczony pixel, zas wykonywane osobno zajmuja 200 taktow,
to moze sie ona okazac potrzebna! Wszystko przed Toba! :>
> Czy nie lepiej zamiast dokladac milion nowych tranzystorow na MMX'a postarac
> sie, by normalne rozkazy wykonywaly sie szybciej ? np. mul/div w jednym
> takcie ? To sa akurat POTRZEBNE instrukcje.
Nie! Bo aby uzyskac takie przyspieszenie potrzeba zbyt duzych nakladow,
zas szlifujac MHz juz wlasciwie doszlismy do granicy mozliwosci obecnej
technologii. Nie dajmy sie zwariowac - myslac w ten sposob nalezaloby
zapytac, dlaczego na biurkach nie stoja 8086 taktowane zegarem 50GHz -
teoretycznie da sie ja chyba nawet teraz wykonac, a wydajnoscia
dorownywalyby PentiumII :> A mimo to, nie robi sie tego... Przyspieszanie
procesorow to nie tylko MHz. To takze usprawnienia samej struktury
ukladow, rozszerzanie listy rozkakow itp. Zas w przypadku x86 Intel nie
moze sie zdecydowac na odejscie od zgodnosci binarnej, ktora wymusza
akurat tego typu protetyke. Btw. DIV jest zlym przykladem, bo wszystkie (w
sensie: kazde) procesory maja z tym problemy i jest to naprawde
skomplikowane.
> A dlaczego to klepanie coraz wiecej MHz jest gorsze od MMX'a ?
> Przeciez liczy sie tylko realna szybkosc procesora, a nie szpan, ze ma
> zajebiste rozkazy. Jak mam wybierac, biorac pod uwage realia - o co tak
> bardzo raczysz apelowac - to wybieram wiecej MHz, bo nie musze sie uczyc
> nowych rozkazow i nie musze kupowac nowego kompilatora.
A dlaczego zamiast klepac 50GHz 8086 producenci robia procesory DSP i inne
wynalazki? Przeciez to byloby tak samo wydajne. Ba! Moznaby robic nawet
4004/500GHz!! To dopiero bylaby rakieta! :>
> Ludzie juz dawno wymyslili risc i vliw. Moze na razie zastosujmy to, co
> znane i dobre, a w nastepnym kroku wymyslajmy nowe.
Piszac "ludzie" masz na mysli "w 80% Intel" - bo niestety czysto
statystycznie 80% nowych technologii jesli chodzi o procesory wychodzi
wlasnie od Intela. Po prostu Intel wydaje najwiecej kasy (ponad rzad
wielkosci wiecej niz nastepny w kolejce konkurent) na badania, nie tylko
nad MMX czy nowymi P9, ale takze na badania ogolne - nowe techniki
przetwarzania danych, nowe technologie wytwarzania ukladow itd itd. Nie
zaprzeczysz, ze uklad scalony wynalazl Intel. Nie zaprzeczysz, ze
mikroprocesor to takze jego pomysl... AMD, Cyrix i inni robia swoje uklady
korzystajac z technologii i doswiadczen Intela. Tych firm nie stac, na
opracowanie wlasnych metod przetwarzania danych. Sam zreszta nsapisales
bardzo slusznie, ze produkowanie procesorow wymaga ciezkich pieniedzy. Ich
projektowanie to jeszcze wiekszy wysilek. Zas na prace nad nowymi
technologiami i metodami stac tylko kilka najbogatszych firm. I tu akurat
nie powienies chyba narzekac na Intela. Ja sie ciesze, ze jest AMD, Cyrix
i wiele innych firm - ceny dzieki temu spadaja. Ale to jeszcze nie powod,
bym gnoil Intela. W czasach 386 i 486 kupowalem praktycznie tylko AMD. Po
prostu byly lepsze. K5 okazalo sie niewypalem.. K6 w praktyce takze
absolutnie nie stanowi konkurenta dla intelowskiej konstrukcji P6.
Poczekam wiec, az AMD znow sobie przypomni, jak sie produkuje porzadne
procesory... Chetnie je kupie, jesli istotnie beda lepsze. Jestem
fanatykiem, ktory chetnie wyda ciezkie pieniadze, pod warunkiem, ze
dostanie faktycznie lepszy pod kazdym wzgledem produkt. A jest mi
dokladnie wszystko jedno czy bedzie na nim napis Intel, MIPS, AMD czy tez
moze FSO Polonez...
> Jaka powinna byc IMHO mniej-wiecej architektura procesora, to juz pisalem w
> tym subjeccie. Widac uszlo twojej uwadze.
Nie uszlo. A napiszesz jeszcze do tego 123123GB software? A wymienisz
darmowo procesory ilustamset milionom uzytkownikow ktorzy obecnie
korzystaja z x86? Jesli to zrobisz, to masz szanse, ze Twoj produkt
przyjmnie sie na rynku. Acha - jeszcze musi tylko byc w porownywalnej
cenie jak x86 :>
Do dyskusji czysto technicznej nad procesorami, choc w pewnych granicach
potrafie pominac aspekt ekonomiczny, trzeba jednak brac pod uwage tzw.
wielka ekonomie i realizm. Nie ma w chwili obecnej szans na zmiane
architektury procesora w PC. Nikogo (nawet Intela) na to nie stac. Zwroc
uwage kiedy pojawil sie 80386, a kiedy tak naprawde w pelni wykorzystano
mozliwosci 32-bit x86 AXP dajac szaremu uzytkownikowi narzedzia w pelni
wykorzystujace procesor. Do dzis jeszcze tego nie uczyniono (Win95 to
kolejna proteza z kodem 16-bit)!!! A ile lat minelo? I Ty wymagasz
calkowitej zmiany architektury? Przeciez to za 30lat nie ma szans sie
przyjac... Nie... To w ogole nie ma szans niestety nie przyjac... Zas MMX
zachowuje zgodnosc z softwarem. Ba! Pozwala na tanie podniesienie
wydajnosci komputerow o kilkanascie/kilkadziesiat %, w tych obszarach
zastosowan, ktore interesuja szarego uzytkownika. Mowisz DSP, dobre karty
graficzne, procesory na kartach muzycznych, scramblery... Osobno moze i te
karty sa tansze i wydajniejsze od MMXa, ale niestety tylko MMX potrafi
obgonic wszystkie te rzeczy naraz. Zas cena wszystkich tych dodatkowych
urzadzen z pewnoscia przekracza wielokrotnie koszt MMXa. Komputer musi byc
narzedzien uniwersalnym. Zwlaszcza PC przeznaczony dla biurwy, do domu i
wlasciwie kazdego. Na dobrym PC mozesz robic wszystko wlasciwie. Malo jest
zastosowan wymagajacych rozbudowy sprzetu o nietypowe rozszerzenia, drogie
karty itp. I istotnie stosuje sie takie rozwiazania w profesjonalnychz
astosowaniach gdzie jest taka potrzeba (karty RIPujace, procesorowe karty
graficzne itd itd). Ale nie w komputerze szarego czlowieka, ktory
chcialby, by mozliwie wydajnie chodzilo mu wszystko. 15 specjalizowanych
kart w PC to dla wiekszosci zbyt droga zabawa. A MMX - nie :)
> Karpio, nie wiesz o czym piszesz.
> A oto argumentacja analogiczna do twojej: [ ]
Podoba mi sie to. Dziekuje. Cieszy mnie, ze wszystkie Twoje listy
utrzymane sa w podobnym tonie :>
> Ja mam swiadomosc, ze jestem skazany na MMX'a i ze jest on trochu lepsiejszy
> od nieememixa. Ale nie przeszkada mi to twierdzic iz nie jest to dobry
O... I tylko o to chodzilo - przyznales wlasnie racje, ze jednak istnieje
sens istnienia ( :>> ) MMXa i ze istotnie jest on lepszy od nieMMXa. I o
to w calej dyskusji chodzilo. A teraz poczekajmy miesiac az procki
stanieja i kupmy je sobie, cieszac sie kolejnym 30% przyspieszeniem
odtwarzania AVIkow, mozliwoscia korzystania z wydajniejszych narzedzi itd.
Nie oczekuje niczego wiecej :>
pozdrawiam,
karpio
To archiwum zostało wygenerowane przez hypermail 2.1.7 : Tue 18 May 2004 - 16:14:03 MET DST