Šta je novo?

Sta je pajplajn

GuruDexx

Čuven
Učlanjen(a)
17.07.2003
Poruke
651
Poena
619
Zdravo,

Zanima me sta znaci pajplajn?
Vidim da cesto pricate o tome, ali nikako ne mogu da nadjem sta to znaci.
Pa bi molio nekoga da mi objasni

Hvala,
pozz
 
Pipeline je "red" instrukcija od kojih je svaka u razlicitom stanju (izvrsavanje, dekodiranje, uzimanje, citanje,...). Znaci, ako ima 4 pajplajna, moze da stavi 4 instrukcija u njega i tako oslobodi 4 registra u procesoru koji sad ima mesta za uzimanje novih instrukcija.

Odprilike se secam, ispit sam polozio i zaboravio. Dopunite i ispravite me.
 
Tako nekako, ali drugacije.
Pre ce biti da je to logika tj. elektronika kroz koju prolaze redovi instrukcija.
Koliko koraka ima, npr Prescott ima 31, to znaci da svaka operacija uz izuzetke da bi se odradila mora da prodje 31 stepen obrade.

Tu sad ide i prica o predvidjanju grananju, obradi unapred i slicno, ali je malo komplikovanije.

Kod grafickih kartica kada se kaze ima 8pipe-a to znaci da ta ima 8 tih "sklopova" pa mogu da simultano rade vise stvari, najcesce 8 pixela tj. tacki na ekranu.

Mnogo je tu usljovljenosti i izuzetaka, ne moze se bas pricati kao o pravilu.

Pozdrav!
 
Savremene procesore karakterisu dva glavna pojma.

1. Pipeline
2. Superscalar

Prvi oznacava da je izvrsavanje instrukcija podeljeno na faze. Broj faza varira od konkretne inplementacije ali sve sadrze sledeca 4 osnovna tipa:

1. fetch
2. decode
3. execute
4. store

Na ovaj nacin se postize bolje iskoriscenje procesora jer dok se jedna instrukcija izvrsava, druga se dekodira, a treca pribavlja. Istu ideju je primenio Ford u svojim fabrikama koje su imale pokretnu traku.

Drugi pojam oznacava paralelizam u izvrsavanju instrukcija. Postojanje vise jedinica za obradu instrukcija/podataka koje mogu ali i ne moraju biti realizovane kao pipeline.
 
GPU ima nekoliko pararelnih pipelina(cijevovoda),a svaki cijevovod može isporučiti jedan piksel(element slike).
Unutar ovih cijevovoda može biti više texturnih jedinica.Neke strukture cijevovoda su sposobne poslati dvije texture sa jednim pikselom.Ako se radi sa single texture cijevovodom,pixel će morati proći dva puta kroz cijevovod.

Jednostavno rečeno,GPU pipelin služi za "isporuku" pixela,odnosno textura po pikselu-texela.

200Mhz bus,4x1(4 cijevovoda,1 textura po pikselu) pipeline arhitektura:
200Mhz x 4 cijevovoda / 2 (samo jedna textura po pikselu prolazi) = 400 Mpixels
200Mhz x 4 pipelines = 800Mtexels
 
Poslednja izmena:
sto se tice grafickih kartica, jos jednostavnije (i banalnije 🙂) objasnjenje je: pajplajn je "cev" u koju ulaze texeli i verteksi, a s druge strane ispadaju pikseli.
naravno, ulazi jos ponesto, ali poenta je da je zbir pajplajna osnovni "prostor" u kome se od razlicitih informacija pravi slika koju mi na kraju vidimo.
 
Graficke kartice iscrtavaju 3d scenu od trouglova/tacaka/linija. Svaki trougso se sastoji od 3 tacke (vertexa). Kada se npr. trougao posalje na iscrtavanje, kartica mora da obradi 3 vertexa (pomocu vertex shadera) i posalje ih u odeljak koji se zove "primitive setup". Zatim se racunaju neki koeficijenti, itd.. i dalje salje rasterizatoru na rasterizaciju. Rasterizator je algoritam koji "popunjava" trougao na ekranu. Pored toga, njegov zadatak je da racuna (interpolira) razne vrednosti duz povrsine trougla i za svaki pixel poziva pixel shader. Rezultat pixel shadera je pixel koji se salje u ROP, gde se eventualno blenduje as pozadinom i upisuje u framebuffer. Vidi se da je procesiranje vertexa i pixela usko grlo.

Da bi se dobila brzina, u GPU-u se ugradjuju dodatni delovi (pajpovi) pomocu kojih se izvrsavanje vertex i pixel programa paralelizuje. To znaci da GPU moze da izvrsava ISTI program u ISTOM trenutku sa vise RAZLICITIH ulaznih parametara. Ukoliko unutar programa nema grananja, svi pajpovi ce zavrsiti posao u ISTOM trenutku.

yooyo
 
Poslednja izmena:
yooyo je napisao(la):
kartica mora da obradi 3 vertexa (pomocu vertex shadera)
ne bih se slozio da je prisusvo vertex/pixel shadera u pajplajnu obavezno, pa samim tim i nema mesta za njega u "definiciji" pajplajna.
svestan sam da time uskacem sam sebi u usta jer sam ranije pomenuo teksture, koje takodje nisu obavezne, al' nisam hteo da komplikujem posto se vreme od kad su teksture postale prakticno neizostavni deo 3d grafike meri decenijama. vertex/pixel shaderi, u formi kakvu danas podrazumevaju, su tu tek koju godinicu. 🙂
 
A to su znaci ti Pajpovi 🙂 ***-a, ucim to tek sledece godine u skoli... 10x, na informacijama, stvarno nisam znao...
 
GPU pipelin se sastoji od texturnih te piksel shaderskih jedinica.

Texturne jedinice bave se lijepljenjem slika(odnosno textura u BMP ili GIF formatu)na površinu poligona.
Pixel shaderi omogućavaju detaljniji prikaz zahvaljujući mogućnosti izračuna boje na razini svakog piksela te programabilnosti.Programabilnost omogućava jednostavno simuliranje stvarnih kompleksnih površina kao drvo,mramor i sl.

Vertex shaderi(barataju vrhovima trokuta) nisu prisutni u cijevima i kod Atija nemaju pristup teksturama što ih čini kompatibilnima samo sa SM 2.0 standardom,dok kod Nvidije vertex SM 3.0 imaju pristup teksturama,odnosno vertex shaderi čitaju potrebne informacije iz tekstura.
 
Ljudi.. nemojte praviti konfuziju. Prosto receno.. Ako imas radnju sa jednom masinom za fotokopiranje, brzinu kopiranja mozes povecati kupovinom brze masine (povecanje megaherca) ili kupovinom jos nekoliko masina (povecanje broja pajpova) koje ce raditi paralelno na istom zadatku. E, sve te masine su pajpovi, a sta sve ima unutra zavisi od proizvodjaca do proizvodjaca.

Shaderi su druga stvar. Shaderi su programi koji se izvrsavaju nad tim cevima. Vertex shaderi procesiraju vertexe, a pixel shaderi pixele.

yooyo
 
Jedno malo podpitanje u vezi sa procesorima.
Intel ima vise sporijih pajplajnova, dok AMD ima manje brzih?
 
Kod intela je obrada duza, 31 pipeline. To omogucava vise taktove izmedju ostalog, ali je osetljivo na greske. AMD ima 12 faza, manje MHz, ali manje osetljiv na greske.

Kompromisi kao i uvek, sad, ko je bolje vagnuo, misljenja su oprecna 🙂
 
shibbypower1 je napisao(la):
Jedno malo podpitanje u vezi sa procesorima.
Intel ima vise sporijih pajplajnova, dok AMD ima manje brzih?
Ne treba brkati pajpove kod CPU-ova i kod GPU-ova. U pitanju su dve potpuno razlicite price!
U kontekstu Pajpova kod GPU-ova procitati Yooyo-ov post za razjasnjenje.
 
yooyo je napisao(la):
Ljudi.. nemojte praviti konfuziju. Prosto receno.. Ako imas radnju sa jednom masinom za fotokopiranje, brzinu kopiranja mozes povecati kupovinom brze masine (povecanje megaherca) ili kupovinom jos nekoliko masina (povecanje broja pajpova) koje ce raditi paralelno na istom zadatku. E, sve te masine su pajpovi, a sta sve ima unutra zavisi od proizvodjaca do proizvodjaca.

yooyo

... ili ćeš ubrzati staru mašinu sa 220V-50Hz na 380V-100Hz :d
 
yooyo je napisao(la):
Ljudi.. nemojte praviti konfuziju.

Čekaj malo,ako je neko zakomplicirao stvar u definisanju pajplajna onda si to ti.Čovjek pita šta je pajplajn,a ti mu objašnjavaš princip rada vertex shadera,odnosno nastajanje 3D modela,uz gomilu njemu pretpostavljam nejasni pojmova i izraza.
Tvoje objašnjenje,normalno ima veze sa pajplajnima,ali ne ulazi u definiciju.

yooyo je napisao(la):
Shaderi su druga stvar. Shaderi su programi koji se izvrsavaju nad tim cevima. Vertex shaderi procesiraju vertexe, a pixel shaderi pixele.

Pixel shaderi su programi koji se izvršavaju unutar pajplajna.
 
zokish: ... ili ćeš ubrzati staru mašinu sa 220V-50Hz na 380V-100Hz

Bravo.. to sam zaboravio da dodam! 🙂

starac: Čekaj malo,ako je neko zakomplicirao stvar u definisanju pajplajna onda si to ti.

Odgovori koji su drugi napisali su dovoljno konfuzni. Ja sam samo pokusao da to ispravim.

Pixel shaderi su programi koji se izvršavaju unutar pajplajna.

Verovao ili ne, i vertex shader se izvrsavaju u vertex pajplajnu!

yooyo
 
Poslednja izmena:
Hvala svima na odgovorima

10x

pzz.
 
yooyo je napisao(la):
Verovao ili ne, i vertex shader se izvrsavaju u vertex pajplajnu!

Pa normalno da se izvršavaju u pajplajnu,jer se maltene kompletna jezgra sastoji od pajplajna.
Ali vertex shaderi se ne izvršavaju u rasterizacijskim pajpl.i nisu prisutni kao pixel shaderi,odnosno nisu prisutni kao nezavisne jedinice.
 
lepo objasnjeno na Futuremarku:

This term has two meaning when used with 3D graphics: (1) the rendering process from start to finish, and (2) specific sections of a graphics processing chip.

(1) The rendering pipeline in DirectX begins with the loading of the vertex or primitive data into the graphics adapter, where it is then tessellated into more vertices (for more detail, etc). The next stage of the pipeline involves vertex operations called transform and lighting - which can be done via "fixed" routines or programmable shaders. Once done, the vertices are then clipped and culled, before being finally turned into triangles and then rasterised. The next stage involves texturing the primitive, which again can be done via "fixed" routines or programmable shaders. The final steps of the pipeline include various tests to determine whether the pixels are visible or not, the application of fog and a final bit of blending.

(2) The term "pipeline" is used for graphics adapters to describe the number of pixel processing units in the chip (and sometimes vertex units too). An adapter with more pixel pipelines will be able to texture more pixels per clock cycle than one with less.
 
[=PEX=] je napisao(la):
lepo objasnjeno na Futuremarku:

This term has two meaning when used with 3D graphics: (1) the rendering process from start to finish, and (2) specific sections of a graphics processing chip.

(1) The rendering pipeline in DirectX begins with the loading of the vertex or primitive data into the graphics adapter, where it is then tessellated into more vertices (for more detail, etc). The next stage of the pipeline involves vertex operations called transform and lighting - which can be done via "fixed" routines or programmable shaders. Once done, the vertices are then clipped and culled, before being finally turned into triangles and then rasterised. The next stage involves texturing the primitive, which again can be done via "fixed" routines or programmable shaders. The final steps of the pipeline include various tests to determine whether the pixels are visible or not, the application of fog and a final bit of blending.

(2) The term "pipeline" is used for graphics adapters to describe the number of pixel processing units in the chip (and sometimes vertex units too). An adapter with more pixel pipelines will be able to texture more pixels per clock cycle than one with less.

Sve ovo je već rečeno u postovima iznad,tako da nema potrebe ponavljati.

Ako nekog stvarno zanimaju pajplajni te uloga pixel i vertex shadera u njemu,potrebne informacije i više od toga može naći ovdje:

http://www.gamedev.net/reference/articles/article1496.asp

http://www.gamedev.net/reference/articles/article1820.asp
 
Sasa je napisao(la):
Kod intela je obrada duza, 31 pipeline. To omogucava vise taktove izmedju ostalog, ali je osetljivo na greske. AMD ima 12 faza, manje MHz, ali manje osetljiv na greske.

Kompromisi kao i uvek, sad, ko je bolje vagnuo, misljenja su oprecna 🙂

:> sad je apsolutno jasno ko je bolje vagnuo (Intel mic po mic odustaje od NetBurst arhitekture...)
 
Svaka IT firma nakon 5-10 godina totalno zameni arhitekturu.
Netbrust nije nista krace trajao od P6, tako da je tvoj rezon "odustaje od NetBrusta, znaci da ne valja" pogresan. Takodje, AMD K8 je nasledio AMD K7, jel' zbog toga treba reci da je K7 bio los ? Naravno da ne.

Ne kazem da je Intel bolje vagnuo, kazem samo da je normalno da se nakon nekoliko godina, shodno trendovima, trenutnom razvoju i potrebama izbaci totalno nova generacija proizvoda, revolucija nove, umesto evolucija stare.

Pozdrav!
 
Sasa ovaj put nije u pravu jer:
P6 jeste trajao onoliko koliko mora (kao i Pentium4) jer ne mozete menjati arhitekturu na svakih 5 meseci (kao sto si rekao) i da je mogao AMD bi mnogo brze penzionisao K6 i zamenio ga sa Athlonom jer K6 nije bio dorastao tadasnjim Intelovim procesorima. Ponavljam: Intel je morao da gura NetBurst narednih 5 godina. Sada je doslo vreme da se promeni arhitektura i da je Intel "pogresio" pokazuje i cinjenica da odustaje od NetBursta i vraca se PentiumM arhitekturi (koja je evolucija PIII arhitekture, isto kao i Athlon). Intel je mozda pokusao da napravi revoluciju u razvoju procesora sa NetBurst-om ali je pre napravio slepo crevo 🙂
Ako te interesuje vise detalja otvoricemo novi thread!
 
Nazad
Vrh Dno