Ostateczna specyfikacja OpenCL 3.0 została już wydana

Kilka miesięcy temu udostępniliśmy tutaj na blogu wiadomości wydanie rozwoju OpenCL 3.0 autorstwa Koncern Khronos (Odpowiedzialny za rozwój specyfikacji dla rodziny OpenGL, Vulkan i OpenCL).

I tak było do niedawna ogłoszono wydanie ostatecznej specyfikacji OpenCL 3.0, definiowanie interfejsów API i rozszerzeń języka C w celu organizowania wieloplatformowych obliczeń równoległych przy użyciu wielordzeniowych procesorów, układów GPU, FPGA, DSP i innych wyspecjalizowanych układów scalonych, od tych używanych w superkomputerach i serwerach w chmurze po chipy, które można znaleźć w urządzeniach mobilnych i zintegrowanej technologii.

W tym samym czasie wydano open source OpenCL SDK z narzędziami, przykładami, dokumentacją, plikami nagłówkowymi, linkami do bibliotek C ++ i C do tworzenia aplikacji zgodnych z OpenCL 3.0.

Przedstawiono również wstępną implementację OpenCL 3.0 opartą na kompilatorze Clang, który jest na etapie wzajemnej oceny w celu włączenia do głównego pakietu LLVM. Do standardu przyczyniły się takie firmy jak IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments i Toshiba.

Dzisiaj grupa robocza Khronos® OpenCL ™ ma przyjemność ogłosić wydanie sfinalizowanych specyfikacji OpenCL 3.0, w tym nowej, ujednoliconej specyfikacji języka OpenCL C 3.0, a także wczesne wydanie Khronos OpenCL SDK, aby umożliwić programistom szybkie wstawanie przyspieszyć dzięki OpenCL.

Główne cechy OpenCL 3.0

OpenCL 3.0 API teraz obejmuje wszystkie wersje OpenCL (1.2, 2.x), bez podawania oddzielnych specyfikacji dla każdej wersji.

OpenCL 3.0 oferuje możliwość rozszerzenia podstawowej funkcjonalności poprzez integrację dodatkowych specyfikacji, które będą się nakładać w postaci opcji bez blokowania monolitycznej natury OpenCL 1.2 / 2.X.

Tylko funkcjonalność, która spełnia OpenCL 1.2 jest deklarowany jako obowiązkowyi wszystkie funkcje proponowane w Specyfikacje OpenCL 2.x nazywane są opcjonalnymi.

Takie podejście uprości tworzenie wyspecjalizowanych implementacji, które są kompatybilne z OpenCL 3.0 i rozszerzy zakres urządzeń, na których można używać OpenCL 3.0.

Np. Producenci mogą wdrożyć obsługę OpenCL 3.0 bez implementowania określonych funkcji OpenCL 2.x. Aby uzyskać dostęp do opcjonalnych funkcji językowych, do OpenCL 3.0 został dodany system żądań testowych w celu oceny obsługi poszczególnych elementów API, a także specjalnych makr.

Ujednolicenie z wcześniej opublikowanymi specyfikacjami ułatwia tłumaczenie aplikacji na OpenCL 3.0. Aplikacje OpenCL 1.2 będą mogły działać na urządzeniach obsługujących OpenCL 3.0 bez modyfikacji.

Aplikacje OpenCL 2.x również nie wymaga zmian w kodzie, ale jeśli środowisko OpenCL 3.0 zapewnia niezbędną funkcjonalność (dla przyszłej przenośności zachęca się aplikacje OpenCL 2.x do dodawania zapytań testowych w celu oceny zgodności z używanymi funkcjami OpenCL 2.x).

Deweloperzy sterowników z implementacjami OpenCL mogą łatwo uaktualnić swoje produkty do OpenCL 3.0, dodając przetwarzanie żądań tylko dla niektórych wywołań API i stopniowo zwiększając funkcjonalność w miarę upływu czasu.

Specyfikacja OpenCL 3.0 została dostosowana do środowiska, rozszerzeń i specyfikacji rodzajowego produktu pośredniego S.PIR-V, który jest również używany w API Vulkan. Wsparcie dla specyfikacji SPIR-V 1.3 jest zawarte w głównym OpenCL 3.0 jako funkcja opcjonalna. Dodano obsługę operacji na podgrupach poprzez użycie reprezentacji pośredniej SPIR-V dla rdzeni obliczeniowych.

poza tym dodano obsługę rozszerzenia do wykonywania operacji DMA Asynchroniczny obsługiwany na układach DMA typu DSP.

Asynchroniczne DMA umożliwia wykorzystanie transakcji DMA do asynchronicznego przesyłania danych między pamięcią globalną i lokalną, równolegle z trwającymi obliczeniami lub innymi transferami danych.

Specyfikacja rozszerzeń programowania równoległego dla języka C został zaktualizowany do wersji 3.0 a rozwój rozszerzeń języka OpenCL dla C ++ został przerwany na rzecz projektu „C ++ for OpenCL”.

Aby przetłumaczyć OpenCL przez Vulkan API, proponuje się kompilator clspv, który konwertuje jądra OpenCL na reprezentację Vulkan SPIR-V i warstwę clvk, aby zapewnić, że API OpenCL działa na szczycie Vulkan.

źródło: https://www.khronos.org/


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: AB Internet Networks 2008 SL
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.