Pojawia się PoCL 5.0 z nowym backendem, ulepszeniami i nie tylko

PoCL

PoCL jest wydajną implementacją standardu OpenCL

Ogłoszono to kilka dni temu wydanie nowej wersji PoCL 5.0 i jedną z głównych nowych funkcji, które wprowadza nowa wersja wyróżnia się nowy backend pozwalając pobieraj polecenia OpenCL przez sieć do jednego lub większej liczby serwerów, podkreślając także ulepszenia CUDA, ulepszenia obsługi i nie tylko.

Dla tych, którzy nie są zaznajomieni z PoCL, powinniście wiedzieć, co to jest przenośna implementacja open source (na licencji MIT) standardu OpenC,Oprócz tego, że jest implementacją OpenCL typu open source na wiele urządzeń łatwo przenośny. Podstawowym celem tego projektu jest poprawa interoperacyjności różnorodnych urządzeń kompatybilnych z OpenCL poprzez zintegrowanie ich w jedną, centralnie zarządzaną platformę.

Ponadto jednym z kluczowych celów długoterminowych jest poprawa wydajności i przenośności programów OpenCL na typach urządzeń korzystających z technik wykonawczych i kompilacji.

Główne nowe funkcje PoCL 5.0

W tej nowej wersji PoCL 5.0 zaprezentowano, jak wspomniano na początku, najważniejszą nowość to nowy backend „PoCL-Remote” który jest zaprojektowany do pobierania poleceń OpenCL przez sieć do jednego lub większej liczby serwerów które uruchamiają demona „pocld”, w zestawie z PoCL. Włączając obsługę OpenCL w innych systemach sieciowych, PoCL-Remote umożliwia bezproblemowe korzystanie z OpenCL na tych zdalnych hostach.

Wspomina się, że w przeciwieństwie do rozwiązań Istniejące rozwiązania do pobierania sieciowego dla OpenCL, PoCL-Remote korzysta z infrastruktury zarządzania pamięcią przez PoCL śledzić obiektów pamięci i po prostu je skopiuj kiedy jest to naprawdę konieczne. Gdy konieczna jest migracja obiektów pamięci, automatycznie wybierana jest najbardziej wydajna ścieżka transferu.

Kolejna nowość który prezentuje nową wersję PoCL 5.0, to: dodano nowe funkcje sterownika NVIDIA CUDA aby zapewnić częściową obsługę sterownika OpenCL 3.0 CUDA została rozszerzona o nowe funkcje do obsługi opcjonalnych funkcji OpenCL 3.0, kilku niezbędnych rozszerzeń optymalizujących wykonanie na chipStar, a także dodanie operacji atomowych OpenCL 2.x/3.x.

Ulepszenia obsługi obejmują obsługę drobnoziarnistego SVM Coarse-grain, gdy urządzenie CUDA jest kompatybilne, a także wprowadzenie wstępnego wsparcia dla podgrup: intel_sub_group_shuffle, intel_sub_group_shuffle_xor, get_sub_group_local_id, sub_group_barrier, sub_group_ballot.

Poza tym w tej wersji Ulepszona obsługa procesorów RISC-V. PoCL był testowano na Starfive VisionFive 2 przy użyciu preinstalowanego obrazu Ubuntu 23.10. W przypadku LLVM 17 i GCC 13.2 98% testów przeszło pomyślnie (tylko 4 z 253 testów zakończyło się niepowodzeniem).

Z innych zmian które wyróżniają się na tle nowej wersji:

  • W kontrolerze procesora zaimplementowano wiele dodatkowych ulepszeń, kierując się przede wszystkim potrzebami chipStar.
  • Implementacja cl_ext_float_atomics ze wsparciem dla FP32 i FP64.
  • Zaktualizowano implementację cl_khr_command_buffer do wersji 0.9.4.
    Eksperymentalny backend FPGA zintegrowany z biblioteką jądra.
  • Zaproponowano eksperymentalny backend AlmaIF dla układów FPGA, który umożliwia przejrzystą rekonfigurację układów FPGA od różnych dostawców przy użyciu bazy danych strumienia bitów. Praca ta stanowi część trwających badań i można ją uznać za znaczący postęp. Baza danych ze strumieniami bitów jest generowana przez projekt AFOCL.
  • Usunięto niekompletną obsługę renderowania pośredniego z shaderów SPIR 1.x/2.0. SPIR-V jest deklarowany jako zalecany pośredni język cieniowania.
  • Włącz obsługę FP16 i ogólnej przestrzeni adresowej za pomocą wpisu SPIR-V.
  • Dodano obsługę Clang/LLVM 17.0.
  • Implementacja cl_ext_float_atomics (na FP32 + FP64) przy użyciu LLVM 17.
  • Obsługa Clang/LLVM 10-13 została wycofana.

Na koniec należy o tym wspomnieć PoCL-Remote jest uważany za gotowy do testów poza laboratorium, ponieważ został oficjalnie zintegrowany z nową wersją 5.0. Jeśli chcesz dowiedzieć się więcej na ten temat, możesz zapoznać się z szczegóły w poniższym linku.

Dla zainteresowany projektem, Warto wiedzieć, że kod projektu jest rozpowszechniany na licencji MIT, a praca wspierana jest na platformach X86_64, MIPS32, ARM v7, AMD HSA APU i różnych specjalizowanych procesorach TTA z architekturą VLIW.


Zostaw swój komentarz

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

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  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.