2015-11-03 12 views
5

Wraz ze wzrostem interfejsów graficznych niższego poziomu, takich jak DirectX 12, Mantle i Vulkan, zastanawiam się, w jaki sposób oddziałują one (jeśli w ogóle) z Heterogeniczną architekturą systemu (HSA)?DirectX 12/Mantle/Vulkan i HSA

Jak rozumiem, wspieranie HSA wymagało zaangażowania programistów, ale jestem ciekawy, czy któryś z interfejsów graficznych niskiego poziomu obsługuje to teraz sam, czy też ciężar spoczywa na twórcy, aby w pełni go wykorzystać?

HSA jest szczególnie interesująca z takich funkcji, jak uproszczone współdzielenie danych między pamięcią systemową a pamięcią wideo, zwłaszcza gdy oba mają taką samą fizyczną pamięć RAM.

Ponieważ to pytanie jest prawdopodobnie związane z obecnym stanem rzeczy, nie mam nic przeciwko temu rodzajowi przeglądu (chociaż informacje o przyszłych mapach drogowych byłyby miłe), a ja przyjmuję odpowiedź obejmującą tylko jeden interfejs graficzny API (ponieważ wątpię w wiele, jeśli w ogóle, ludzie znają wszystkie trzy plus HSA). Także, jeśli całkowicie źle zrozumiałem, jak to działa, wtedy też możesz to wskazać; Nie jestem obeznany z żadną z tych technologii, ale chciałbym wiedzieć, jak obecnie współdziałają ze sobą.

Odpowiedz

7

Patrząc na schematy na wiki page, interfejsy API niskiego poziomu są bliższe temu, co nazywają systemem innym niż system HSA.

enter image description here

Każda operacja (kopia pamięci rozpoczynając pracę, ...) ma być wysłany bezpośrednio przez aplikację. Chociaż aplikacja może grupować operacje sekwencyjne w buforze poleceń i wywoływać cały bufor za jednym razem i kontynuować pracę z czymś innym, podczas gdy polecenia są wykonywane asynchronicznie.

Z drugiej strony tradycyjny openGL/DirectX9 jest bliżej HSA, ukrywając wszystkie wysyłki i kopiowanie. Wprowadza to jednak obciążenie podczas weryfikacji i próbuje przewidzieć, co zrobi aplikacja, aby zminimalizować opóźnienie. Nie wspominając już o tym, że istnieje bardzo mała możliwość sprawdzenia, czy operacje są zakończone z api o synchronicznych korzeniach. Oznacza to, że jeśli zdarzy ci się wywołać metodę wymagającą wyniku operacji, sterownik (HSA) zostanie zablokowany do czasu wykonania tej operacji.

enter image description here

że nowy niskopoziomowe API daje większą kontrolę dla programisty aplikacji i przestać ukrywać sedna jest w rzeczywistości głównym punktem sprzedaży.

+0

Świetna odpowiedź, ale jak sądzisz, w jaki sposób ma to zastosowanie do innych funkcji HSA, takich jak możliwość współużytkowania tej samej pamięci między procesorem a urządzeniem iGPU? Czy DirectX 12 jest w stanie zrobić to samo bez konieczności kopiowania takich rzeczy jak tekstury, które są już załadowane do pamięci głównej (po stronie procesora)? – Haravikk

+0

@Haravikk, który zależy od sposobu układania sprzętu, zintegrowane procesory graficzne często nie mają dedykowanej pamięci, więc będą korzystać z fizycznej pamięci RAM. A do tego dostęp ma CPU. Chociaż buforowanie oznacza, że ​​dostęp musi być zsynchronizowany i strzeżony. –

Powiązane problemy