A A A

Intel Integrated Performance Primitives

Biblioteka przeznaczona dla języka programowania C/C++, ułatwiająca tworzenie aplikacji multimedialnych. Dzięki zaimplementowanym w niej funkcjom możliwy jest dostęp do dodatkowych instrukcji procesorów (np. technologia MMX, Streaming SIMD Extensions - SSE, Streaming SIMD Extensions 2 - SSE2, AVX, AVX2, AVX512), wspomagających przetwarzanie plików dźwiękowych i obrazów, takich jak: dekodowanie plików MP3, kodowanie i dekodowanie plików JPEG oraz dekodowanie MPEG4 i H263, a także funkcje arytmetyczne, statystyczne oraz z zakresu przetwarzanie sygnałów (DSP) i obrazów. Biblioteka obsługuje wiele typów danych zapewniając dużą elastyczność tworzenia aplikacji multimedialnych.

Podstawowe cechy biblioteki:
  • Wysoka optymalizacja dla wielordzeniowych procesorów firmy Intel. Dla każdej architektury procesora biblioteka Intel Integrated Performance Primitives automatycznie wykrywa zestaw dostępnych instrukcji, pozwalając na zwiększenie wydajności przy użyciu rozszerzeń instrukcji Intel Streaming SIMD Extensions oraz Intel Advanced Vector Extensions, dzięki której tworzone aplikacje są wyraźnie szybsze od tych tworzonych wyłącznie za pomocą wyłącznie zoptymalizowanego kompilatora.
  • Duża liczba funkcji pozwalająca skrócić czas wypuszczenia aplikacji na rynek. Biblioteka Intel Integrated Performance Primitives zawiera ponad 2500 funkcji z zakresu przetwarzania obrazów, 1300 z zakresu przetwarzania sygnałów, 500 z dziedziny rozpoznawania obrazów oraz około 300 z kryptografii.
  • W pełni bezpieczne przetwarzanie wielowątkowe (thread-safe) pozwala na uniknięcie błędów w dostępności do danych przez wątki.
  • Dostępność dla wielu platform oraz systemów operacyjnych. Biblioteka Intel Integrated Performance Primitives może wspomóc programowanie niezależnie od użytej platformy - Windows, Linux oraz OS X. Biblioteka zawiera natywne wsparcie dla języków C oraz C++, jak również C#/.NET oraz Java w opcji Cross-language.
  • Możliwość bezpłatnej redystrybucji nielimitowanej kopii bibliotek runtime wraz z aplikacją.

Benchmarki biblioteki Intel Integrated Performance Primitives:













Środowisko w którym zostały przeprowadzone powyższe benchmarki: procesor Intel Xeon 4110, Ubuntu 18.04.2. ICC 19.0.3.206, -O3 -std=c++11 =march=skylake-avx512 -qopt -zmm-usage=high option

Obszary zastosowań:
  • kodowanie sekwencji wideo
  • przetwarzanie obrazów
  • analiza obrazów w aplikacjach sztucznej inteligencji
  • konwersja systemów kodowania koloru
  • przetwarzania sekwencji znakowych
  • kodowanie obrazów w standardzie JPEG
  • kodowanie sygnałów mowy
  • przetwarzanie sygnałów (filtracja cyfrowa, przekształcenie Fouriera, okna sygnałowe, generatory sygnałów, statystyka wektorowa, normalizacja sygnałów, kształtowanie charakterystyki częstotliwościowej sygnału, emfaza)
  • kompresja danych
  • kodowanie sygnałów dźwiękowych (MP3, AAC, AC3)
  • rozpoznawanie mowy
  • operacje wektorowe i macierzowe (algebra wektorów i macierzy dla transformacji 3D i modelowania, układy równań liniowych, zagadnienia najmniejszych kwadratów)
  • kryptografia