Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

OpenCL 1.2

Termin Definicja
OpenCL 1.2

OpenCL 1.2 to kolejna wersja standardu, rozszerzająca możliwości programowania urządzeń heterogenicznych.

OpenCL 1.2 jako standard wykonywania obliczeń heterogenicznych

OpenCL 1.2 jest specyfikacją Khronos Group przeznaczoną do uruchamiania obliczeń na różnych typach urządzeń obliczeniowych. Program korzystający z OpenCL może wykorzystywać procesor CPU, kartę graficzną GPU, układ zintegrowany albo inne urządzenie udostępniające zgodną implementację. Standard nie jest sterownikiem konkretnej karty i nie gwarantuje, że każde urządzenie będzie obsługiwać wszystkie możliwości z taką samą wydajnością. Producent sprzętu musi dostarczyć implementację OpenCL, zwykle powiązaną ze sterownikiem grafiki lub pakietem sterownika obliczeniowego.

Model OpenCL 1.2 rozdziela program wykonywany na urządzeniu od aplikacji sterującej działającej po stronie hosta. Aplikacja wybiera platformę, wykrywa urządzenia, tworzy kontekst, kolejkę poleceń oraz obiekty pamięci, a następnie przekazuje do wykonania funkcje zwane kernelami. Kernel jest kodem uruchamianym równolegle na wielu elementach roboczych. Takie podejście pozwala przenosić część obliczeń, na przykład operacje na dużych tablicach, obrazach lub macierzach, z CPU na GPU, pod warunkiem że sterownik i urządzenie obsługują wymagany poziom OpenCL.

Elementy dodane i uporządkowane w wersji 1.2

Jedną z istotnych funkcji OpenCL 1.2 jest partycjonowanie urządzenia za pomocą funkcji clCreateSubDevices. Umożliwia ona podział urządzenia OpenCL na podurządzenia, jeżeli dana implementacja na to pozwala. Podział może być oparty między innymi na liczbie jednostek obliczeniowych albo na dostępnych domenach powinowactwa określonych przez urządzenie. Aplikacja może dzięki temu przydzielić różne zadania odrębnym częściom jednego urządzenia, ale sama obecność wersji 1.2 nie oznacza, że każdy sterownik udostępnia każdą metodę podziału.

OpenCL 1.2 wprowadza także obsługę osobnej kompilacji i konsolidacji programów za pomocą funkcji takich jak clCompileProgram oraz clLinkProgram. Pozwala to budować program z kilku modułów zamiast kompilować cały kod jako jeden blok. W API pojawiły się również operacje wygodniejsze w zarządzaniu pamięcią i kolejkami poleceń, między innymi clEnqueueFillBuffer, clEnqueueFillImage, clEnqueueCopyBufferRect, clEnqueueMarkerWithWaitList i clEnqueueBarrierWithWaitList. OpenCL C 1.2 zawiera ponadto funkcję printf dostępną w kernelach, której działanie i ograniczenia zależą od implementacji urządzenia.

Co wersja OpenCL faktycznie mówi o komputerze

Numer OpenCL 1.2 opisuje poziom zgodności interfejsu, a nie generację procesora graficznego ani szybkość obliczeń. Dwa komputery zgłaszające OpenCL 1.2 mogą mieć zupełnie różną liczbę jednostek obliczeniowych, szerokość magistrali pamięci, rozmiar pamięci urządzenia i wydajność. Przydatne informacje można odczytać z właściwości urządzenia, takich jak CL_DEVICE_NAME, CL_DEVICE_VENDOR, CL_DEVICE_VERSION, CL_DEVICE_OPENCL_C_VERSION, CL_DEVICE_MAX_COMPUTE_UNITS oraz CL_DEVICE_GLOBAL_MEM_SIZE. Sam napis „OpenCL 1.2” nie potwierdza, że aplikacja będzie mogła uruchomić dowolny kernel bez dodatkowej weryfikacji.

Problemy z OpenCL często wynikają z warstwy sterownika, a nie z uszkodzenia samego procesora lub karty graficznej. Program może nie wykrywać urządzenia, gdy brakuje właściwego sterownika GPU, zainstalowano niezgodny pakiet producenta albo aplikacja korzysta z innej platformy OpenCL niż oczekiwana. W systemie mogą być obecne implementacje kilku dostawców, dlatego diagnostyka powinna obejmować nazwę platformy, wersję sterownika, listę urządzeń i obsługiwane rozszerzenia. Narzędzie clinfo może pomóc wyświetlić te dane, lecz nie jest częścią standardu OpenCL i musi być zainstalowane osobno.

OpenCL 1.2 w praktyce serwisowej laptopa i komputera PC

W laptopie lub komputerze stacjonarnym zgodność z OpenCL 1.2 może być wykorzystywana przez programy do obróbki obrazu, kodowania multimediów, symulacji, analizy danych albo obliczeń numerycznych. Jeżeli aplikacja działa na CPU, mimo obecności układu GPU, przyczyną może być brak obsługiwanego urządzenia, niezgodna wersja sterownika, wyłączona karta w konfiguracji hybrydowej albo błąd samej aplikacji. W przypadku współdzielenia danych z OpenGL znaczenie ma również obsługa odpowiedniego rozszerzenia, na przykład cl_khr_gl_sharing, ponieważ nie każda implementacja OpenCL 1.2 musi udostępniać identyczny zestaw rozszerzeń.

Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów, komputerów PC i podzespołów, w tym sprawdzaniem sterowników grafiki, wykrywaniem urządzeń obliczeniowych oraz weryfikacją, czy środowisko OpenCL 1.2 jest prawidłowo udostępniane aplikacjom. Przy takiej diagnozie warto rozdzielić trzy kwestie: fizyczną sprawność karty lub układu graficznego, poprawność instalacji sterownika oraz zgodność konkretnego programu z funkcjami OpenCL 1.2. Dopiero porównanie tych elementów pozwala ustalić, czy problem dotyczy sprzętu, konfiguracji systemu, czy ograniczeń używanej aplikacji. Specyfikacja interfejsu jest publikowana w rejestrze Khronos Group: OpenCL API Specification.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę