Zaledwie pięć lat temu firma Intel była dumna z oferowania jedynego i tradycyjnego dla branży modelu programowania opartego na instrukcjach zgodnych z x86. Model ten obejmował mobilne systemy na SoC Atom, akceleratory obliczeń Xeon Phi (de facto architekturę graficzną – pierwotnie Larrabee) oraz procesory. Dziś teza „x86 to wszystko, co mamy” przestała być aktualna dla firmy. Intel wkrótce zaprezentuje unikalne dyskretne architektury graficzne i już wprowadził procesory do pracy z sieciami neuronowymi. Do programowania na nowych platformach i frameworkach Intel potrzebuje nowego modelu programowania, który również powinien być zunifikowany.

Niedawno w Londynie na wydarzeniu Intel Software Technology firma przedstawiła ten model. Nowy zunifikowany model programowania rozwija się w ramach projektu „One API”. Zgodnie z projektem, programowanie dla całego spektrum rozwiązań i platform Intel stało się prostsze bez względu na wybór platformy. Jak stwierdził Bill Savage, wiceprezydent Intela i dyrektor generalny działu Compute Performance Developer Products: „Celem projektu „One API” jest dostarczenie programistom zestawu narzędzi, które oferują zjednoczony model programowania i ułatwiają tworzenie obciążeń roboczych dla różnych architektur. W miarę rozwoju naszych możliwości obliczeniowych, które teraz obejmują wyspecjalizowane akceleratory, Intel będzie oferować rozwiązania programowe, które pozwolą deweloperom wyciągnąć maksymalną wydajność z sprzętu.”
Świeżym przykładem możliwości współpracy z różnymi architekturami są narzędzia deweloperskie Intel Distribution of OpenVINO Toolkit. Wielokrotnie o tym narzędziu, które oferuje jednolite, zoptymalizowane możliwości dla głębokiego uczenia na wszystkich architekturach Intel SVMS (skalarnych, wektorowych, macierzowych, przestrzennych). Oznacza to, że OpenVINO umożliwia tworzenie programów dla procesorów ogólnych, graficznych, neuronowych oraz FPGA. Projekt One API pozwoli na to samo przy bezpośrednim programowaniu i za pomocą API, ale w rozszerzonym zakresie i nieco prościej, co objawi się na przykład w zwolnieniu z konieczności utrzymywania oddzielnych baz kodu źródłowego, różnych języków programowania oraz różnych narzędzi i procesów roboczych.
„Bezpośrednie programowanie: Projekt One API zawiera nowy język bezpośredniego programowania Data Parallel C++ (DPC++), który oferuje otwartą, ogólnoindustryjną alternatywę dla proprietary języków programowania dla poszczególnych architektur. Podstawą DPC++ jest C++, a w języku wykorzystywana jest model SYCL* od The Khronos Group. Ponadto, wprowadzono wsparcie dla rozszerzeń językowych opracowywanych w ramach otwartej społeczności.”
Programowanie z użyciem API zapewni unikalne biblioteki dla różnych typów obciążeń roboczych z wsparciem sprzętowego przyspieszenia. Funkcje biblioteki są opracowywane dla każdej docelowej architektury. Do analizy i debugowania tworzone są rozszerzone wersje narzędzi wspierających DPC++ oraz architektury SVMS. Dodamy, że wersja beta narzędzi dla programistów oraz dodatkowe szczegóły dotyczące projektu One API są oczekiwane w czwartym kwartale 2019 roku.
Źródło: 3dnews.ru
