Zaskakujący jest dla mnie ponowny wzrost wskaźnika skalowalności jeśli rozmiar pamięci roboczej zaczyna być znacznie większy od L3. Tak jakby dostęp do cache’u był wtedy pomijany?
Nie znałem tego frameworku X-ray do instrumentacji. Bawiłem się niedawno opcją “-finstrument-functions” z GCC, ale w innym celu.
Chciałem zrobić logowanie wywołań funkcji z nazwą pasującą do określonego wzorca.
Spróbowałem też użyć frameworku Frida, ale okazało się, że nie działa z kodem rzucającym wyjątki C++.
Wyjątek z hookowanej funkcji jest rzucany drugi raz, co skutkuje ubiciem procesu przezstd::terminate
.Będę musiał chyba wrócić do oryginalnej koncepcji z instrumentacją z kompilatora.
Nie wiem czy pomijalny. Raczej coś zaczyna być wykorzystywane w pełni. Może L3 się zaczyna odpowiednio dzielić zasobami. Może kontroler DDR5 zaczyna lepiej paralelizować rozkazy.
Ok, pomyślałem jeszcze nad tym wykresem i doszedłem do wniosku, że to może być związane z NUMA.
Może topologia wyglądała tak, że każdy procesor miał przydzielone tylko 2 kanały i dla przypadku z jednym workerem odczytywał z RAMu tyle samo danych, co każdy z 6 procesów w drugim scenariuszu.Czyli system był skonfigurowany tak, że wydajność RAMu dla pojedynczego procesora była sztucznie zaniżona.
Uruchomienie dodatkowych procesów mogło w tym przypadku poprawić wynik.
Na L3 nie miało to wpływu, bo ta warstwa działa z maksymalną przepustowością (pomijając przypadki gdzie trzeba synchronizować dostęp do danych).To dobra teoria. Trzeba się zapoznać z budową chipletu i/o. Gdzieś widziałem jego schemat blokowy.
Mam chiński art: https://zhuanlan.zhihu.com/p/629392033
Na 图4 (Rysunek 4) masz schemat budowy chipletu i/o. Wygląda na to, że w dalszym ciągu jest RAM bliższy i dalszy. By trzeba zrobić twój benchmark by to zweryfikować.
Wcześniej byłem przekonany, że skoro zrobili jeden chiplet do komunikacji to obsługa pamięci jest mniej rozproszona i CPU mają do niej bardziej zrównoważony dostęp.
Podobało mi się Queue ze wskaźnikami obsługiwanymi przez nadawcę jako barierami odczytu. Reszta dość standardowa. Wymienił Actona i nawet go za to nie zjechali. Coś tam pękło w ciągu tych 10 lat?