Galvatron pisze:e X t 7 3 pisze:
[...]
Jeszcze w kwestii konfiguracja kernela, a wydajność m.in. w odtwarzaniu filmów ... cóż pisałem, że konfiguracja kernela w mniejszym stopniu ma na to wpływ ... to jest "półprawda", bo oprócz jego konfiguracji ma znaczenie jego kompilacja ... m.in. mój kernel dla Brazosa (linia Brazos) kompilowany jest z flagami bdver1 dla 14 i 15 rodziny AMD (AMD Family 14h i 15h core based CPUs), co powoduje, że w wielu przypadkach uzyskuje on responsywność i wydajność nieosiągalną dla generica. Podobny stopień zacząłem stosować dla K8, ale osoby które miały słabszy sprzęt narzekały na dziwne skoki wydajności, co wynikało z tego, że kernel przygotowany był do wykorzystania instrukcji ... których procesor nie posiadał. Podczas gdy kernel generic zoptymalizowany jest jedynie z flagą pentiumpro (i686). Skutkuje to tak naprawde brakiem wsparcia dla części z nowszych i bardziej zaawansowanych instrukcji.
Pozdrawiam
[...]
Czy dobrze zrozumiałem, że np. ładny skok wydajności można by uzyskać kosztem ucięcia wsparcia dla CPU starszych niż powiedzmy C2D, albo przynajmniej Pentium IV "Prescott", który jako pierwszy miał SSE3?
hmm cóż kernel K8 już wspiera ... ale do sse2. Właśnie się zastanawiałem nad budową z wykorzystaniem albo flagi amdfam10 (co właśnie już raz zrobiłem) - tu instrukcje - MMX, SSE, SSE2, SSE3, SSE4A, 3DNow!, enhanced 3DNow!, ABM), albo delikatniej z użyciem zamiast k8 (MMX, SSE, SSE2, 3DNow!, enhanced 3DNow!), k8-sse3 (MMX, SSE, SSE2, SSE3, SSE4A, 3DNow!, enhanced 3DNow!, ABM), a np. bdver1 (tę opcje wykorzystuje przy kompilacji kernela z lini Brazos), wspiera nawet FMA4, AVX, XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, 3DNow!, enhanced 3DNow!, ABM, choć większość procesorów i tak tego nie wykorzystuje. Przykładowo kernel w wersji atom ma włączoną optymalizację atom
a tu mamy: MMX, SSE, SSE2, SSE3 and SSSE3.
Co do wydajności, to nie oczekuj "cudów", tu mierzalne i uważam dobre zmiany to in plus do 10-30 % w stosunku do generica i ok 3-13 % (zależne od bardzo wielu czynników) w stosunku do standardowego K8 - porównuje K8 z Brazos.
Aha aby nie było nieporozumień, wybranie określonej architektury procesora to nie tylko wspierane instrukcje ... ale też cały szereg innych flag, ustawień cache, etc., które powodują, ze np. moim zdaniem najbardziej optymalną architekturą (testowałem chyba wszystkie flagi na 10 maszynach) - na większe procesory jest k8 (k8-sse3, amdfam10) niż np. prescott, czy też core2. Sądzę, ze jedyną różnicę na plus dla układów Sandy Bridge - tu konkretnie i7 byłoby zastosowanie flagi corei7-avx, albo nawet corei7-avx-i, ale to już tak ostre zawężenie odbiorców, że na pewno nie zrobię takiego kernela ... no chyba, że oferowałbym taki maszyny. Sądzę, że w tym przypadku zysk dla takiego procesora mógłby być bardzo odczuwalny.
Pozdrawiam
-- 17 lis 2011 12:53 --
Kwestia kolejnej wersji kernela ... sądzę, ze wersja 17.1 powinna być wydajniejsza i bardziej responsywna od 17.0. Wprowadziłem zmiany, które powodują, że kernel cały czas utrzymuje "maksymalną moc" (co prawda minimalnie kosztem precyzji logowania działań systemu). Jeśli dłuższe testy potwierdzą te zmiany na +, wykorzystam je przy kolejnej wersji kernela
.
Pozdrawiam