Elektronika.lt
 2024 m. gruodžio 22 d. Projektas | Reklama | Žinokite | Klausimai | Prisidėkite | Atsiliepimai | Kontaktai
Paieška portale
EN Facebook RSS

 Kas naujo  Katalogas  Parduotuvės  Forumas  Tinklaraščiai
 Pirmas puslapisSąrašas
 NaujienosSąrašas
 StraipsniaiSąrašas
 Vaizdo siužetaiSąrašas
 Nuolaidos, akcijosSąrašas
 Produktų apžvalgosSąrašas
 Naudingi patarimaiSąrašas
 Vykdomi projektaiSąrašas
 Schemų archyvasSąrašas
 Teorija, žinynaiSąrašas
 - Elektronikos komponentai
 - Elektronikos technologija
 - Parametrų apskaičiavimai
 - Kompiuterija
 - Telekomunikacijos
 - Įvairi teorija
 Nuorodų katalogai
 Įvairūs siuntiniai
 Bendravimas
 Skelbimai ir pasiūlymai
 Elektronikos remontas
 Robotų kūrėjų klubas
 RTN žurnalo archyvas






 Verta paskaityti
Gruodžio 22 d. 11:24
Energetikos sektoriaus laukia pokyčiai – alternatyvų yra, bet ar užteko laiko pasiruošti?
Gruodžio 21 d. 11:33
Kokį elektronikos įrenginį dovanoti, kad jis vėliau neišaugintų elektros sąskaitos?
Gruodžio 20 d. 17:12
KTU mokslininkai sukūrė nanolazerį – sidabro nanokubus panaudojo šviesos generavimui
Gruodžio 20 d. 14:28
Lietuvių kalba ir technologijos: VU mokslininkų projektas LIEPA-3 atvers naujas galimybes
Gruodžio 20 d. 11:49
Stacionarūs kompiuteriai: koks jų vaidmuo nešiojamųjų kompiuterių eroje?
Gruodžio 20 d. 08:14
„DS Automobiles“ pristato naujausią savo elektrinį flagmaną – „DS N°8“ kupė
Gruodžio 19 d. 20:18
Naudingi patarimai, kurie padės maksimaliai padidinti jūsų elektrinio automobilio priemonės įveikiamą atstumą
Gruodžio 19 d. 17:27
Žaidybinimas: efektyvus švietimo įrankis ar bėgimas nuo tikrovės?
Gruodžio 19 d. 14:27
Orkaitės darbymetis prasideda: 5 paprasti patarimai, kurie kalėdinius kepinius leis paruošti elektrą naudojant taupiau
Gruodžio 19 d. 11:15
Proveržis magnetų tyrimuose: ištisas savaites tarnaujanti telefono baterija ir 1000 kartų didesnė jo sparta
FS25 Tractors
Farming Simulator 25 Mods, FS25 Maps, FS25 Trucks
ETS2 Mods
ETS2 Trucks, ETS2 Bus, Euro Truck Simulator 2 Mods
FS22 Tractors
Farming Simulator 22 Mods, FS22 Maps, FS25 Mods
VAT calculator
VAT number check, What is VAT, How much is VAT
LEGO
Mänguköök, mudelautod, nukuvanker
Thermal monocular
Thermal vision camera,
Night vision ar scope,
Night vision spotting scope
FS25 Mods
FS25 Harvesters, FS25 Tractors Mods, FS25 Maps Mods
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija
FS25 Mods
FS25 Maps, FS25 Cheats, FS25 Install Mods
GTA 6 Weapons
GTA 6 Characters, GTA 6 Map, GTA 6 Vehicles
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps
ATS Trailers
American Truck Simulator Mods, ATS Trucks, ATS Maps
Reklama
 Teorija, žinynai » Elektronikos technologija Dalintis | Spausdinti

GPGPU – Bendrosios paskirties skaičiavimai pasinaudojant vaizdo procesoriumi

Publikuota: 2007-12-06 12:51
Tematika: Elektronikos technologija
Skirta: Pradedantiems
Autorius: Lukas Steiblys
Aut. teisės: ©Pixel.lt
Inf. šaltinis: Pixel.lt

Šių dienų kompiuteriuose vaizdo procesorius (angl. „GPU“ – Graphics Processing Unit) yra būtinas komponentas. Jis gali būti integruotas į motininę plokštę arba prijungtas atskirai vaizdo plokštėje. Šis procesorius gali atlikti ypač daug operacijų per sekundę savo galingumu kelis kartus aplenkdamas net pačius naujausius bendrosios paskirties procesorius.

 Rodyti komentarus (0)
Įvertinimas:  1 2 3 4 5 

Trumpas įvadas į vaizdo procesorių architektūrą

Šių dienų kompiuteriuose vaizdo procesorius (angl. „GPU“ – Graphics Processing Unit) yra būtinas komponentas. Jis gali būti integruotas į motininę plokštę arba prijungtas atskirai vaizdo plokštėje. Šis procesorius gali atlikti ypač daug operacijų per sekundę savo galingumu kelis kartus aplenkdamas net pačius naujausius bendrosios paskirties procesorius.


1. Grafikas[šaltinis nr. 4] rodo kiek apytiksliai milijardų operacijų su slankaus kablelio skaičiais per sekundę galėjo atlikti naujausi bendrosios paskirties procesoriai (žydra kreivė) ir vaizdo procesoriai (raudona kreivė) nuo 1998 iki 2006 metų.

Vaizdo procesoriaus pagrindinė užduotis yra manipuliuoti 3D ir 2D vaizdus, skaičiuoti erdvinių objektų pozicijas ir apšvietimą. Nuo apytiksliai 2000 metų nauji vaizdo procesoriai gali būti programuojami vadinamųjų šešėliavimo programų pagalba (angl. „Shaders“). Tai leido kurti dar realistiškesnę kompiuterinę grafiką ir įgyvendinti naujus apšvietimo skaičiavimo metodus. Taip pat naujos galimybės sudomino ir kitų sričių specialistus.

Norint išsiaiškinti, kodėl vaizdo procesorius yra žymiai greitesnis už pagrindinės paskirties procesorių, reikia suprasti kaip jame apdorojami duomenys. Kadangi šis straipsnis neapžvelgs visos architektūros detalių, norintiems apie tai sužinoti plačiau, patariu apsilankyti procesorių gamintojos NVIDIA programuotojų puslapyje [7].

Taigi, duomenų apdorojimą grubiai vaizduoja diagrama nr.2. Objektai trimačiame pasaulyje dažniausiai aprašomi trikampiais. Šių trikampių viršūnės apdorojamos vadinamosiose viršūnių programose (angl. „Vertex shader“). Toliau iš tų viršūnių susidarantys trikampiai paverčiami į taškus ir perduodami taškų programai (angl. „Pixel shader“). Po to šis apdorotas taškas išvedamas į ekraną arba išsaugojamas į atmintį ir vėl iš naujo panaudojamas skaičiuojant kitas viršūnes ir taškus. Naujos kartos vaizdo procesoriuose (palaikančiuose 10-tą Direct3D versiją) atsirado dar daugiau programuojamų konvejerio dalių, tačiau jos nėr svarbios šiai straipsnio temai.


2. Duomenų apdorojimo konvejeris vaizdo procesoriuje

Dėl šios konvejerio tipo architektūros, duomenis galima lengvai apdoroti lygiagrečiai. Kiekviena viršūnė nepriklauso nuo kitų apdorojamų viršūnių ir kiekvienas taškas nepriklauso nuo kitų taškų. Todėl naujausi vaizdo procesoriai (2007 m.) turi net iki 128 skaičiavimo elementų, galinčių vykdyti viršūnių ir taškų programas vienu metu. Kiekvienas skaičiavimo elementas veikia apytiksliai 1500 MHz dažniu. Dėl to jų visuma aplenkia visus bendrosios paskirties procesorius. Šią skaičiavimo elementų didėjimo tendenciją matome ir šiandienos bendrosios paskirties procesoriuose, kurie jau turi iki 4 branduolių. Tačiau norint panaudoti šią galią, reikia stipriai keisti programos vykdymo eigą, priversti programą skaičiavimus vykdyti lygiagrečiai.

Kas yra GPGPU?

GPGPU angliškai reiškia General-Purpose computation on GPUs. Verčiant pažodžiui, būtų Bendros Paskirties Skaičiavimai su GPU. Dėl galimybės programuoti vaizdo procesorius ir didelės jų galios jie sudomino įvairių sričių specialistus. Priversti procesorių dirbti galima pasinaudojant įvairiom bibliotekom. Dvi pagrindinės šiuo metų populiariausios yra Direct3D, kuri turi HLSL (angl. „High Level Shading Language“), ir OpenGL su GLSL (angl. „OpenGL Shading Language“). Taip pat šiais metais NVIDIA pristatė CUDA (angl. „Compute Unified Device Architecture“) programavimo įrankį, kuris leidžia programuoti vaizdo procesorius kalba, panašia į populiariąją C kalbą.

Duomenys vaizdo atmintyje laikomi tekstūrų arba atminties blokų (buferių), į kuriuos surašomos viršūnių erdvėje koordinatės, pavidalu. Tekstūra – tai vienmatis, dvimatis ar trimatis paveiksliukas. Tekstūroje galime laikyti duomenis, kurių reikės atlikti skaičiavimams, ir išvesti į ją skaičiavimo rezultatus.

Bitoninio rikiavimo algoritmas

Vienas iš vaizdo procesoriaus pritaikymo būtų gali būti didelio kiekio duomenų rikiavimas. Tai operacija, kuri dažnai atliekama realiose situacijose, pavyzdžiui, įrašų rikiavimas duomenų bazėse. Tai galima atlikti vadinamuoju bitoninio rikiavimo algoritmu. Jis vykdomas keliomis (tiksliau log(n), kur n – duomenų kiekis, log – dvejetainis logaritmas) pakopomis. Algoritmo vykdymo metu surikiuoti mažesni duomenų blokai jungiami į dvigubai didesnius blokus. Šį algoritmą su vienmačiu masyvu arba vienmate tekstūra vaizdžiai iliustruoja diagrama žemiau.

Ši diagrama vaizduoja bitoninio rikiavimo algoritmą su 8 skaičiais. Algoritmas vykdomas trimis pakopomis. Vienos pakopos rezultatas yra sekančios pakopos duomenys. Kiekvienoje pakopoje masyvas išdalinamas į jau surikiuotus blokus, pažymėtus raudonai ir žaliai. Gretimi blokai lyginami taip, kaip vaizduoja rodyklės. Mažesnis elementas perkeliamas į žalią regioną, o didesnis į raudoną.

Bitoninio rikiavimo algoritmas ypatingas tuo, kad duomenų palyginimus ir sukeitimus galima atlikti lygiagrečiai, iškart visam duomenų masyvui (tekstūrai). Taip vienu metu išnaudojami visi vaizdo procesoriaus skaičiavimo elementai. Čia pateikiamas tik vienmačio masyvo rikiavimo algoritmas, bet dažniausiai naudojami dvimačiai masyvai, nes vaizdo procesoriai labiau pritaikyti dirbti su dvimatėmis tekstūromis (paveikslėliais). Taip pat šis algoritmas nėra pats našiausias lygiagretus rikiavimo algoritmas. Norintys sužinoti apie gudresnius būdus rikiuoti duomenis pasinaudojant vaizdo procesoriumi ar bet kokiu kitu lygiagretaus skaičiavimo procesoriumi, gali apsilankyti gpgpu.org.

Lygiagretūs rikiavimo algoritmai, vykdomi vaizdo procesoriuje, greičiu konkuruoja su algoritmais, vykdomais bendrosios paskirties procesoriuose, pavyzdžiui, greitu rikiavimu (angl. „Quick sort“). Kaip teigiama straipsnyje apie GPU TeraSort algoritmą, pigūs vaizdo procesoriai rikiuoja duomenis taip pat greit kaip žymiai brangesni bendrosios paskirties procesoriai (lyginama tuomet kainavusi $265 NVIDIA 7800 GT vaizdo plokštė su $2200 kainavusiu 3,6 GHz Dual Xeon serveriu).

Pabaiga

Straipsnyje paminėtas duomenų rikiavimo algoritmas yra tik vienas iš lygiagrečių procesorių pritaikymo būdų. Bendrosios paskirties skaičiavimai pasinaudojant vaizdo procesoriumi yra dar gan nauja sritis ir panašu, jog ateityje bus atrasta dar daugiau metodų kaip panaudoti šiuos galingus lygiagretaus skaičiavimo procesorius.

Naudoti šaltiniai:
http://www.gpgpu.org/
http://en.wikipedia.org/wiki/GPU
http://en.wikipedia.org/wiki/CUDA
http://www.wired.com/gadgets/pcs/news/2006/11/72090
GPUTeraSort: High Performance Graphics Coprocessor Sorting for Large Database Management
http://en.wikipedia.org/wiki/Bitonic_sorter
http://developer.nvidia.com/




Draudžiama platinti, skelbti, kopijuoti
informaciją su nurodyta autoriaus teisių žyma be redakcijos sutikimo.

Global electronic components distributor – Allicdata Electronics

Electronic component supply – „Eurodis Electronics“

LOKMITA – įvairi matavimo, testavimo, analizės ir litavimo produkcija

Full feature custom PCB prototype service

Sveiki ir ekologiški maisto produktai

Mokslo festivalis „Erdvėlaivis Žemė

LTV.LT - lietuviškų tinklalapių vitrina

„Konstanta 42“

Technologijos.lt

Buitinė technika ir elektronika internetu žemos kainos – Zuza.lt

www.esaugumas.lt – apsaugok savo kompiuterį!

PriedaiMobiliems.lt – telefonų priedai ir aksesuarai

Draugiškas internetas


Reklama
‡ 1999–2024 © Elektronika.lt | Autoriaus teisės | Privatumo politika | Atsakomybės ribojimas | Reklama | Turinys | Kontaktai LTV.LT - lietuviškų tinklalapių vitrina Valid XHTML 1.0!
Script hook v, Openiv, Menyoo
gta5mod.net
FS25 Mods, FS25 Tractors, FS25 Maps
fs25mods.lt
Optical filters, UV optics, electro optical crystals
www.eksmaoptics.com
Reklamos paslaugos
SEO sprendimai

www.addad.lt
Elektroninių parduotuvių optimizavimas „Google“ paieškos sistemai
www.seospiders.lt
FS22 mods, Farming simulator 22 mods,
FS22 maps

fs22.com
Reklama


Reklama