
Frontier jako pierwszy amerykański superkomputer eksaskalowy na zlecenie Oak Ridge National Laboratory i Department of Energy. podczas gdy jest zasilany przez procesory/procesory graficzne AMD, jest w trakcie oglądania kolejnych zmian jądra Linuksa w celu wprowadzenia nowej platformy.
Frontier jest zasilany przez akceleratory AMD EPYC i Radeon Instinct. Chociaż ma być dostarczony w 2021 r., nadal trwają prace nad obsługą oprogramowania dla systemu Linux, aby ten superkomputer stał się rzeczywistością. W szczególności ostatni wysłany kod dotyczy spójnej obsługi pamięci GPU z tym superkomputerem obsługującym spójne połączenie między procesorami i procesorami graficznymi. Najnowsza seria poprawek firmy AMD proponuje zmiany w kodzie zarządzania pamięcią dotyczące migracji stron strefy urządzenia, a ostatecznie obsługi migracji stron i spójnego dostępu procesora do pamięci wideo.
Opierając się na ostatnim Heterogeneous Memory Management (HMM ) Kod współdzielonej pamięci wirtualnej (SVM), który jest teraz w kolejce dla systemu Linux 5.14, ta nowa seria poprawek to [RFC PATCH 0/5] Obsługa pamięci DEVICE_GENERIC w migrate_vma_*. Wieloletni inżynier AMD Linux Felix Kuehling podsumowuje sytuację następująco:
AMD buduje architekturę systemu dla superkomputera Frontier ze spójnym połączeniem między procesorami i procesorami graficznymi. Ta architektura sprzętowa umożliwia procesorom spójny dostęp do pamięci urządzenia GPU. Mamy sprzęt w naszych laboratoriach i pracujemy z naszym partnerem HPE nad BIOS-em, oprogramowaniem układowym i oprogramowaniem w celu dostarczenia do DOE.
System BIOS reklamuje pamięć urządzenia GPU (inaczej VRAM) jako SPM (pamięć specjalnego przeznaczenia) w mapie adresów systemu UEFI. Sterownik amdgpu wyszukuje go za pomocą lookup_resource i rejestruje go w devmap jako MEMORY_DEVICE_GENERIC przy użyciu devm_memremap_pages.
Teraz próbujemy przeprowadzić migrację danych do iz tej pamięci za pomocą pomocników migrate_vma_*, aby móc obsługiwać migrację opartą na stronach w naszych ujednoliconych alokacjach pamięci, jednocześnie wspierając dostęp procesora do tych stron.
Ta seria poprawek wprowadza kilka zmian, aby strony MEMORY_DEVICE_GENERIC działały poprawnie w pomocnikach migrate_vma_*. Czekamy na opinie na temat tego podejścia. Jeśli jesteśmy blisko, co jest potrzebne, aby nasze łatki były akceptowalne na rynku? Jeśli nie jesteśmy blisko, jakieś sugestie, jak inaczej osiągnąć to, co staramy się osiągnąć (tj. migrację stron i spójny dostęp procesora do pamięci VRAM)?