Heterogeniczne kolejkowanie: procesorowe równouprawnienie w wydaniu AMD

Heterogeniczne kolejkowanie: procesorowe równouprawnienie w wydaniu AMD23.10.2013 15:21

Heterogeniczna architektura obliczeniowa (HSA), którą od kilkumiesięcy AMD opisuje jako przyszłość sprzętu IT, budzi coraz większezainteresowanie zarówno producentów sprzętu, jak i oprogramowania. Wrozwijającej ją Fundacji HSA znaleźć można m.in. konsorcjum ARM,Samsunga, LG, Texas Instruments, Qualcomm, Canonicala i Sony, a takżeośrodki akademickie z USA, Wielkiej Brytanii i Chin. Do tej poryjednak nacisk kładło się na technologięhUMA, pozwalającą CPU i GPU na dostęp do tej samej pamięci. Jakjednak poradzić sobie z problemem przenoszenia zadań międzyprocesorem głównym a procesorem graficznym? Odpowiedzią na to jesttechnologia hQ (heterogeneous queuing), stanowiąca ostatni krok nadrodze do integracji procesorów w ramach HSA.Do tej pory relacja między procesorem głównym a procesoremgraficznym wyglądała następująco: aplikacja komunikowała się z CPUprzez swoje kolejki zadań, zaś CPU poprzez usługi systemowe,interfejsy programowania i sterowniki sprzętu tworzył kolejkę zadańprzekazywanych do GPU. Uniemożliwiało to w praktyce bezpośrednidostęp aplikacji do GPU – nie tylko nie mogła ona stworzyćbezpośrednio kolejki zadań dla GPU, ale też komunikacja przez CPUbyła obciążona wieloma warstwami abstrakcji (ten problem ma rozwiązaćz kolei Mantle API).[img=hsa]hQ zmienia tę sytuację całkowicie – komunikacja między CPU iGPU staje się dwukierunkowa. Nie tylko CPU może tworzyć kolejki zadańdla GPU, ale też GPU może tworzyć kolejki zadań dla CPU. Co więcej,aplikacja zyskuje możliwość bezpośredniego kierowania zadań do GPU, zpominięciem abstrakcji systemu operacyjnego.[img=cpu-gpu-wo-hq][join][img=cpu-gpu-w-hq]Idea wydaje się prosta, ale jej realizacja, z tego co można siębyło od AMD dowiedzieć, okazała się bardzo skomplikowana. Pozbyciesię narzutu kolejnych warstw systemu operacyjnego okazało się możliwepoprzez wprowadzenie standardowego formatu pakietów danych dla CPU iGPU. Kolejki zadań dla CPU i GPU powstają z takich właśnie64-bajtowych pakietów, umieszczanych w określonych obszarach pamięci.Przenoszą one informacje o typie pakietu, grupie roboczej, alokacjipamięci, wskaźniku do wykonywalnego obiektu w pamięci i argumentachdla jądra. Aplikacja może pakiety takie umieszczać równie dobrze wkolejkach CPU jak i GPU, bez ograniczeń co do ich długości. Najnowszewersje układów APU od AMD mają obsłużyć do 50 takich kolejek. A jeśli50 kolejek gwarantowanych przez sprzęt nie wystarczy, to możliwebędzie uruchomienie dodatkowej warstwy software'owej, pozwalającej nazarządzanie w praktyce nieograniczoną liczbą kolejek. Wszystkie te operacje zachodzić mają w warstwie użytkownika,praktycznie bez odwołań do jądra systemu. Pozwala to na bezpieczne ioszczędne uruchamianie aplikacji, bez narzutu i przyznawanianadmiernych uprawnień. W zasadzie jest to realizacja obietnic, jakietowarzyszyły wprowadzeniu pierwszych APU – procesor główny możerealizować zadania szeregowo, by w połowie pracy przekazać częśćzadań związaną z przetwarzaniem równoległym do procesoragraficznego, z minimalnymi, niedostrzegalnymi dla użytkownikaopóźnieniami. Ten zaś, po ukończeniu pracy może przekazać wyniki zpowrotem do kolejki CPU.Taka architektura raczej jednak nie będzie się spisywała poza APU,dla użytkowników dyskretnych kart graficznych. Narzut związany zkomunikacją po PCI Express byłby tak duży, że szybciej byłoby robićwszystko na CPU, niż bawić się w czasochłonne przerzucanie zadańmiędzy CPU a GPU. Pozostaje jeszcze kwestia tego, w jaki sposób hQ rozdziela zadaniamiędzy CPU i GPU? Z tego co wynika z informacji od AMD, problem tenrozwiązano najprościej jak tylko można. Wszystko robione jest ręcznie– od programisty zależy, gdzie dane zadanie zostanie wykonane.W zasadzie sytuacja przypomina to, jak wygląda programowanierównoległe dzisiaj: narzędzia do profilowania będą sugerowały poprostu te obszary kodu, które warto uruchamiać na GPU. Prawdopodobnie pierwszym językiem programowania, który będziewykorzystywał hQ i inne technologie HSA będzie Java. O tym możeświadczyć zaproszenie Oracle'a na zbliżającą się konferencję APU13.Na pewno na tym jednak AMD nie zaprzestanie – obiecywana jestcała paleta narzędzi dla deweloperów, która pozwolić ma na pełnewykorzystanie możliwości heterogenicznej architektury.

Źródło artykułu:www.dobreprogramy.pl
Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.