b'\n_START_ARTICLE_\nGPGPU\n_START_PARAGRAPH_\nGPGPU (ang.\xc2\xa0general-purpose computing on graphics processing units lub general-purpose computation on graphics processing units \xe2\x80\x93 obliczenia og\xc3\xb3lnego przeznaczenia na uk\xc5\x82adach GPU, zwany tak\xc5\xbce GPGP, rzadziej GP\xc2\xb2) \xe2\x80\x93 technika, dzi\xc4\x99ki kt\xc3\xb3rej GPU, zwykle zajmuj\xc4\x85cy si\xc4\x99 tylko obliczeniami zwi\xc4\x85zanymi z grafik\xc4\x85 komputerow\xc4\x85, umo\xc5\xbcliwia wykonywanie oblicze\xc5\x84 og\xc3\xb3lnego przeznaczenia, tak jak CPU. Dzi\xc4\x99ki temu wiele oblicze\xc5\x84, g\xc5\x82\xc3\xb3wnie obliczenia r\xc3\xb3wnoleg\xc5\x82e, mo\xc5\xbcna przeprowadzi\xc4\x87 znacznie szybciej.\n_START_SECTION_\nHistoria\n_START_PARAGRAPH_\nPocz\xc4\x85tki GPGPU si\xc4\x99gaj\xc4\x85 sposobu przetwarzania ca\xc5\x82ych wektor\xc3\xb3w i tablic liczb. Jest to zwi\xc4\x85zane z przetwarzaniem potokowym i obliczeniami r\xc3\xb3wnoleg\xc5\x82ymi. Jedne z pierwszych i najbardziej znanych superkomputer\xc3\xb3w, kt\xc3\xb3re osi\xc4\x85gn\xc4\x99\xc5\x82y wysoki wzrost wydajno\xc5\x9bci dla zada\xc5\x84 podzielonych na powtarzalne operacje, to Cray-1._NEWLINE_Pierwsze uk\xc5\x82ady graficzne by\xc5\x82y oparte na potokach przetwarzania graficznego. Z czasem stawa\xc5\x82y si\xc4\x99 one coraz bardziej programowalne. W 1999 firma Nvidia wprowadzi\xc5\x82a pierwszy GPU. Na tych uk\xc5\x82adach zacz\xc4\x99to wykonywa\xc4\x87 obliczenia og\xc3\xb3lnego przeznaczenia._NEWLINE_W 2001 wraz z powstaniem Pixel Shader i Vertex Shader zaimplementowanych w DirectX 8.0 zacz\xc4\x99to cz\xc4\x99\xc5\x9bciej wykorzystywa\xc4\x87 procesor graficzny do oblicze\xc5\x84 niezwi\xc4\x85zanych z grafik\xc4\x85. Programowalne jednostki cieniuj\xc4\x85ce by\xc5\x82y wtedy jeszcze bardzo ograniczone (limit dla Vertex Shader 1.1 128 instrukcji; dla Pixel Shader 1.1-1.3 to 4 instrukcje na teksturach i 8 instrukcji arytmetycznych). Z czasem jednak posiada\xc5\x82y coraz wi\xc4\x99ksze mo\xc5\xbcliwo\xc5\x9bci._NEWLINE_W 2004 powsta\xc5\x82 Shader Model 3.0 , zaimplementowany w DirectX 9.0c, daj\xc4\x85cy mo\xc5\xbcliwo\xc5\x9b\xc4\x87 sterowania programem i zwi\xc4\x99kszony limit instrukcji do 512._NEWLINE_W 2006 powsta\xc5\x82 Shader Model 4.0 zaimplementowany w DirectX 10. Jednostki cieniowania pikseli (Pixel Shader) i wierzcho\xc5\x82k\xc3\xb3w (Vertex Shader) zast\xc4\x85piono zunifikowanymi jednostkami cieniowania (zwanymi r\xc3\xb3wnie\xc5\xbc procesorami strumieniowymi). Dzi\xc4\x99ki temu wzros\xc5\x82a wydajno\xc5\x9b\xc4\x87, mog\xc5\x82y by\xc4\x87 wykonywane obliczenia nie tylko typowe dla program\xc3\xb3w cieniuj\xc4\x85cych oraz limit instrukcji wzr\xc3\xb3s\xc5\x82 do 64 000._NEWLINE_8 listopada 2006 firma Nvidia opracowa\xc5\x82a technologi\xc4\x99 CUDA, wsp\xc3\xb3\xc5\x82pracuj\xc4\x85c\xc4\x85 ze wszystkimi kartami graficznymi tego producenta pocz\xc4\x85wszy od serii GeForce 8 w tym Quadro oraz Tesla (uk\xc5\x82ady przeznaczone do pracy w technologii GPGPU). Umo\xc5\xbcliwi\xc5\x82a ona wykorzystanie mocy obliczeniowej procesor\xc3\xb3w kart graficznych do rozwi\xc4\x85zywania og\xc3\xb3lnych problem\xc3\xb3w numerycznych w spos\xc3\xb3b wydajniejszy ni\xc5\xbc w tradycyjnych procesorach og\xc3\xb3lnego zastosowania._NEWLINE_13 lutego 2008 tw\xc3\xb3rca silnika fizyki PhysX, Ageia zosta\xc5\x82a przej\xc4\x99ta przez Nvidi\xc4\x99, kt\xc3\xb3ra zaimplementowa\xc5\x82a j\xc4\x85 w swojej technologii._NEWLINE_Podobnym do PhysX silnikiem fizyki jest Havok. Poprzez rozwijanie przez firm\xc4\x99 Havok (stworzon\xc4\x85 przez Intela), powsta\xc5\x82a wersja Havoc FX, kt\xc3\xb3ra wykorzystuje GPU do symulacji fizycznych._NEWLINE_Alain Ticquet (przedstawiciel Nvidia odpowiedzialny za program "GPU Venture" i wspieranie tw\xc3\xb3rc\xc3\xb3w oprogramowania zgodnego z CUDA) w wywiadzie przedstawia mo\xc5\xbcliwo\xc5\x9bci wykorzystania tej technologii. Efekty fizyczne w grach komputerowych mog\xc4\x85 by\xc4\x87 szybciej obliczane, odci\xc4\x85\xc5\xbcaj\xc4\x85c g\xc5\x82\xc3\xb3wny procesor. Mo\xc5\xbcliwe jest wykonywanie wydajnych oblicze\xc5\x84 w zakresie symulacji komputerowych z dziedziny fizyki czy chemii, liczeniu aproksymacji, konwersji film\xc3\xb3w i tomografii._NEWLINE_Podobn\xc4\x85 technologi\xc4\x99 zacz\xc4\x99\xc5\x82a tworzy\xc4\x87 ATI. W 2006 powsta\xc5\x82a Close to Metal, wersja beta interfejsu programowania na niskim poziomie umo\xc5\xbcliwiaj\xc4\x85cego wykorzystanie GPGPU. Teraz znany jest on pod nazw\xc4\x85 ATI Stream. Udost\xc4\x99pniony zosta\xc5\x82 Stream SDK (ATI Stream Software Development Kit). Zawiera "Brook+", zoptymalizowan\xc4\x85 pod k\xc4\x85tem oblicze\xc5\x84 potokowych wersj\xc4\x99 BrookGPU, kt\xc3\xb3ra jest wariantem ANSI C stworzonym na Uniwersytecie Stanforda.\n_START_SECTION_\nZastosowanie\n_START_PARAGRAPH_\nW listopadzie 2004 zesp\xc3\xb3\xc5\x82 naukowc\xc3\xb3w w laboratorium w Los Alamos, wsp\xc3\xb3lnie z Nvidi\xc4\x85, opracowa\xc5\x82 program wykonuj\xc4\x85cy obliczenia symulacji zapadaj\xc4\x85cej si\xc4\x99 gwiazdy supernowej. Obliczenia te zrealizowa\xc5\x82a karta graficzna NVIDIA Quadro FX 3400 czterokrotnie szybciej ni\xc5\xbc Intel Pentium 4 Xeon 3.0 GHz._NEWLINE_Projekt internetowy Folding@home realizuj\xc4\x85cy obliczenia rozproszone, maj\xc4\x85cy na celu badanie proces\xc3\xb3w zwijania bia\xc5\x82ek, opr\xc3\xb3cz u\xc5\xbcycia domowych procesor\xc3\xb3w i procesor\xc3\xb3w Cell z konsoli PlayStation 3, umo\xc5\xbcliwia wykorzystanie GPU. Poprzez zwi\xc4\x99kszenie szybko\xc5\x9bci wykonywania oblicze\xc5\x84 dzi\xc4\x99ki GPGPU, opracowywanie nowych sposob\xc3\xb3w liczenia mo\xc5\xbce by\xc4\x87 szybsze.'