W każdym pececie jest jakiś układ graficzny, lepszy lub gorszy. Do niedawna, jeśli był gorszy, to służył tylko do wyświetlania pulpitu i okien programów. Jeśli był lepszy, to oprócz tego nadawał się do grania. Ale rozwój w branży gier zapoczątkował spore zmiany w tych układach. Z wąsko wyspecjalizowanych mikroprocesorów stały się uniwersalnymi, programowalnymi maszynami obliczeniowymi, i to o gigantycznej mocy. Stało się jasne, że można, wręcz należy zaprząc tę moc nie tylko do rozrywki. W tej chwili na myśl powinny Wam przyjść takie nazwy, jak: OpenCL, CUDA, GPGPU, QuickSync. O co w tym wszystkim chodzi?
Spis treści
Drzemiące megaflopy
Powstała koncepcja GPGPU, czyli General Purpose Graphics Processing Unit. „Jednostka przetwarzania grafiki ogólnego zastosowania” brzmi bez sensu – w końcu służy do grafiki czy do ogólnych zastosowań? Okazuje się, że programowalne jednostki obliczeniowe nowoczesnych GPU mogą służyć i do tego, i do tego.
W tym miejscu musimy się zastanowić, jak programy korzystają z układów graficznych. Procesor to jasna sprawa: ktoś pisze kod, a system operacyjny dba o jego prawidłowe wykonanie równocześnie z setkami innych fragmentów kodu. Ale karta graficzna nie jest bezpośrednio programowalna, nie jest po prostu dodatkową jednostką wykonawczą procesora. Jej pamięć nie jest częścią przestrzeni adresowej „głównej” pamięci operacyjnej komputera – nie wpisuje się bezpośrednio do niej kodu i instrukcji. Pośredniczy w tym sterownik, udostępniający różne interfejsy programowania, czyli sposoby odwoływania się do karty. Takimi interfejsami są na przykład DirectX i OpenGL.

Wraz z rozwojem sprzętu, o którym wspomnieliśmy w pierwszym akapicie, następował rozwój wspomnianych interfejsów. Najbardziej znane i najczęściej wykorzystywane to:
- DirectX – to cały zbiór różnych interfejsów programistycznych, z których karty graficznej dotyczą: DirectDraw, Direct 2D (oba używane do wyświetlania grafiki dwuwymiarowej), Direct3D (wyspecjalizowany w wyświetlaniu grafiki trójwymiarowej, wykorzystywany przez większość gier) i DirectCompute (do wykonywania obliczeń na GPU). DirectX jest ściśle związany z systemem Windows. Od dawna stosuje się go nie tylko w grach: na przykład wiele programów odtwarzających filmy wyświetla obraz z użyciem DirectDraw.
- OpenGL – główny rywal DirectX, o bardzo podobnej funkcjonalności. Jest otwartym standardem nieprzywiązanym do żadnego systemu operacyjnego. Wykorzystują go niektóre gry, szczególnie te dostępne na Linuksa lub Mac OS X. Oprócz tego jest powszechnie stosowany do wyświetlania grafiki dwu- i trójwymiarowej w profesjonalnych narzędziach, takich jak produkty Adobe i Autodesk.
- CUDA – interfejs programowania kart graficznych Nvidii służący do wykonywania obliczeń. Jest dostępny w wersjach dla Windows, Linuksa i Mac OS X, ale to standard zamknięty, ograniczony do układów Nvidii. Wykorzystywany głównie w przemyśle i badaniach naukowych, a tam i tak używa się oprogramowania dostosowanego do konkretnych maszyn.
- OpenCL – interfejs programowania wyspecjalizowany w obliczeniach, nie tylko wykonywanych z użyciem procesorów graficznych. Pozwala jednakowo potraktować wszystkie urządzenia obliczeniowe w komputerze: procesor, GPU, a nawet różnego rodzaju procesory sygnałowe.
- DXVA, XVBA, XVMC, VA-API, OpenVideo Decode, VDPAU, Intel ClearVideo, Intel QuickSync – cała gama interfejsów programistycznych dających dostęp do wbudowanych w układy graficzne wąsko wyspecjalizowanych jednostek kodowania i dekodowania wideo. Karty AMD mają dekoder UVD i koder VCE, Intel ma ClearVideo i QuickSync, Nvidia – PureVideo; są to jednak wyspecjalizowane jednostki wbudowane w krzem. Są one w mniejszym lub większym zakresie programowalne, ale mogą służyć tylko do obróbki wideo – nie można powiedzieć, że są ogólnego zastosowania.
W tym artykule przyjrzymy się temu przedostatniemu, OpenCL, a szczególnie wykorzystaniu go w programach użytkowych, z którymi domowy użytkownik może się zetknąć na co dzień.

-Intel Celeron G3900 (dwa rdzenie x86-64) 6
-Orange Pi One (cztery rdzenie ARMv8) 0.2
-GT1030 (Pascal I gen.) 1100
-GTX780 (Keppler II gen.) 3700
Post Scriptum: ogólnie artykuł słowem nie wspomina o wydajności OpenCL, a jedynie udowadnia, że popularne oprogramowanie ma pustego checkBox'a
>>>FLoating point Operations Per Second<<<
http://www.sonycreativesoftware.com/vegaspro/gpuacceleration
Tak to wygląda (przynajmniej PRowo) J.
Tyle, że nie mówimy tutaj o zastosowaniach z low endowymi kartami, a na stacjach roboczymi z potężnymi kartami, wielkimi pamięciami, itp.
W teście mamy niską półkę, przyrost więc będzie marny. Może autor artykułu pobierze trial Vegas'a Pro czy Adobe i przeprowadzi test na SZYBKIEJ karcie, a nie na średniej karcie i szybkim procesorze?
Co do stabilności softu.... cóż Adobe ograniczyło liczbę kart, na których to działa (sztucznie rozpoznając producenta i typ karty) po to, aby zawęzić support techniczny. Kart i chipsetów jest mnóstwo, sterowników i ich wersji również... O czymś to świadczy. A i tak co rusz na forach ktoś się żali, że mu nie chodzi akceleracja GPU.
http://astrataro.wordpress.com/2012/09/12/...od/#comment-208
Nakładka graficzna chyba nie obsługuje w pełni 'podmianę' z wymuszeniem opencl.
Mimo to Handbrake(karta amd działała, obciążenie 30%, temperatura 60 st C) potrzebował ~20 minut na 1 przebieg wraz ze wsparciem GPU uzyskując ostatecznie gorszy efekt wizualny przy niskim bittrate, a MeGui ~6 minut przy pierwszym. Drugie przebiegi Handbrake ~20minut, Megui ~13 minut.
Może przy wyższych wartościach bittrate czas chyba zmieni się ;]
Może krótkie omówienie instalacji/używania testowej kompilacji x264-opencl ?
W sumie to nie ma o czym pisać, nv w obecnej formie nie udostępnia Cuda dla serii 6. Chyba żeby cię interesowało o seriach 5 czy 4 a nie myślę że tesle będzie ktoś kupować. Tak samo jak w sony vegas można zapomnieć czy adobe P itd it...
W której części artykułu bo jakoś ślepy jestem. Co najwyżej jest dwa razy zaznaczone że to zamknięty standard. Może w pierwszej kolejności zacząć czytać ze zrozumieniem zanim coś takiego napiszesz . A w drugiej nie o tym jest ten artykuł więc i o Cuda nie ma nic.