Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2012-06-23 22:15:05

  skullman - Użytkownik

skullman
Użytkownik
Zarejestrowany: 2010-04-08

skalowanie procesora

Witam.

Otóż w ubiegły weekend zająłem się konfiguracją skalowalności procesora na laptopie mojego brata, aby rozwiązać problem większej responsywności win7 niż ubuntu (przecież tak nie może być). Przy okazji ostanowiłem zobaczyć jak to wygląda u mnie i właśnie tu pojawia się problem, bo na laptopie zegar procesora schodzi do 800MHz a u mnie nic a nic poniżej 2GHz. Tam jest jakiś core i5 a ja mam w stacjonarnym core 2 duo e8400.

Wynik polecenia cpufreq-info daje:

Kod:

~ $ cpufreq-info 
cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009
Report errors and bugs to cpufreq@vger.kernel.org, please.
analyzing CPU 0:
  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: 0 1
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 10.0 us.
  hardware limits: 2.00 GHz - 3.00 GHz
  available frequency steps: 3.00 GHz, 2.67 GHz, 2.34 GHz, 2.00 GHz
  available cpufreq governors: userspace, conservative, powersave, ondemand, performance
  current policy: frequency should be within 2.00 GHz and 3.00 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 3.00 GHz.
  cpufreq stats: 3.00 GHz:4,14%, 2.67 GHz:0,16%, 2.34 GHz:0,19%, 2.00 GHz:95,51%  (50424)
analyzing CPU 1:
  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: 0 1
  CPUs which need to have their frequency coordinated by software: 1
  maximum transition latency: 10.0 us.
  hardware limits: 2.00 GHz - 3.00 GHz
  available frequency steps: 3.00 GHz, 2.67 GHz, 2.34 GHz, 2.00 GHz
  available cpufreq governors: userspace, conservative, powersave, ondemand, performance
  current policy: frequency should be within 2.00 GHz and 3.00 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 2.00 GHz.
  cpufreq stats: 3.00 GHz:3,99%, 2.67 GHz:0,17%, 2.34 GHz:0,21%, 2.00 GHz:95,63%  (55258)

Jak widać wartości pomiędzy 2 a 3GHz system widzi jako ograniczenie sprzętowe. Stąd moje nietypowe pytanie, czy jest to na stałe jakoś zaszyte w procesor czy może zależy od jego konfiguracji w BIOSie? Nie mam kompletnie doświadczenia z przetaktowywaniem procesorów (no może poza penitium 2 dawno temu) więc zdaję się na rady i doświadczenie mądrzejszych. Czy można to jakoś zbić w dół? Bo to i prąd i temperatura i hałas mniejszy...

Offline

 

#2  2012-06-24 01:07:50

  pribina - Użytkownik

pribina
Użytkownik
Zarejestrowany: 2011-06-11

Re: skalowanie procesora

Częstotliwości taktowania zależą w pierwszej kolejności od procesora, a w drugiej od płyty, która może nakładać na procesor dodatkowe ograniczenia (bios). Jeżeli chodzi o laptopy to są one tak projektowane, aby czas pracy na baterii był jak najdłuższy i dlatego w procesorach stosowane są różne techniki obniżające zużycie energii. Wspomniana częstotliwość 800MHz to zapewne tryb SLFM (super low frequency mode). Jeżeli chcesz  obniżyć zużycie energii to zainteresuj się projektem linux-phc. Jest to moduł kernela pozwalający na zmianę napięcia na rdzeniach procesora. Ja za jego pomocą rozwiązałem problem przegrzewającego się laptopa po zmianie procesora.

Offline

 

#3  2012-06-24 10:55:46

  urbinek - Użytkownik

urbinek
Użytkownik
Skąd: Sosnowiec
Zarejestrowany: 2009-10-01
Serwis

Re: skalowanie procesora

@pribina
nie wczytałem się jeszcze w głab tego projektu, wygląda fajnie ale mam pare pytań
1 jak sie to ma co cpufreq?
2 czy jest automagiczne zarządzanie (ondemand, performance itp) tym, czy muszę wszystko sam ustawiać z palca?
3 rozumiem, że to obsługuje też normalne desktopy?


A w wolnym czasie, robię noże :)
[img]http://nginx.urbinek.eu/_photos/signature.png[/img]

Offline

 

#4  2012-06-24 11:53:31

  mer - Członek DUG

mer
Członek DUG
Zarejestrowany: 2010-08-05

Re: skalowanie procesora

http://www.gentoo.org/doc/en/power-management-guide.xml

Masz configi pod skalowanie CPU ;)


[img]http://img811.imageshack.us/img811/2851/sygnas.png[/img]

Offline

 

#5  2012-06-24 12:18:24

  pribina - Użytkownik

pribina
Użytkownik
Zarejestrowany: 2011-06-11

Re: skalowanie procesora

@urbinek

cpufreq zarządza tylko częstotliwością taktowania procesora podczas gdy linux-phc pozwala dodatkowo na zmianę napięcia na procesorze dla każdej z tych częstotliwości. linux-phc wykorzystuje fakt, że każdy procesor ma inną charakterystykę napięciową, a producent z góry zakłada pewną tolerancję aby wszystkie procki danego typu działały stabilnie. Metodą prób i błędów jesteś w stanie znaleźć minimalne napięcia dla każdej częstotliwości przy których procesor działa stabilnie i się nie wiesza. Obniżenie napięcia powoduje zmniejszenie ilości mocy wydzielanej na procesorze (a co za tym idzie ciepła). Nie ma znaczenia czy są to procki na komputer stacjonarny, czy laptopa. Istotne jest to czy procek pozwala na skalowanie częstotliwości.

Offline

 

#6  2012-06-24 19:39:04

  skullman - Użytkownik

skullman
Użytkownik
Zarejestrowany: 2010-04-08

Re: skalowanie procesora

No ale mnie interesuje tylko, czy da się zbić częstotliwość tego procesora niżej czy nie, bo z 3GHz na 2GHz to nawet 50% nie jest. Płyta główna udostępnia jakiś pseudo O/C więc może tam coś można by...

Co do linux-phc, troszkę z tym roboty. Można jeszcze kernel z liquorixa. Ale zanim sobie namieszam w moim głównym systemie, to mógłbyś mi pribina opisać jak to działa?? Nie chodzi mi bynajmniej o stronę techniczną. Raczej wrażenia, czy jest tak samo niezauważalne i bezproblemowe jak cpufreq?

Ostatnio edytowany przez skullman (2012-06-24 20:25:17)

Offline

 

#7  2012-06-24 20:24:49

  Huk - Smoleńsk BULWA!

Huk
Smoleńsk BULWA!
Zarejestrowany: 2006-11-08

Re: skalowanie procesora

@skullman:

Procki w stacjonarkach - przynajmniej starsze modele, nie wiem jak z i3,i5 i i7 - mają znacznie bardziej ograniczone możliwości skalowania. Mój C2D E7200 skaluje się pomiędzy 1600 a 2500 Mhz, u Ciebie dolną granicą jest pewnie te 2000 Mhz. Pewnie da się zejść niżej, ale raczej tylko za pomocą ręcznego underclockingu, a nie wiem ile płyt taki coś obsługuje - IMHO nie warto sobie głowy tym zawracać, no chyba że lubisz grzebać i chcesz po testować :)

Offline

 

#8  2012-06-24 20:31:38

  skullman - Użytkownik

skullman
Użytkownik
Zarejestrowany: 2010-04-08

Re: skalowanie procesora

No i to jest odpowiedź, nie da się i koniec, starsze proce tak mają i tyle. Dzięki Huk. Generalnie jeszcze przetestuję ten moduł. Podobno działa z niektórymi core 2. Jakie będą efekty i czy w ogóle będę napiszę wkrótce, może się przydać, choć ludzie na desktopach raczej szukają rozwiązań w przeciwną stronę. A ja lubię grzebać oczywiście ale nie w sprzęcie bo to teraz nietrwałe i drogie ;)

Offline

 

#9  2012-06-24 20:33:37

  pribina - Użytkownik

pribina
Użytkownik
Zarejestrowany: 2011-06-11

Re: skalowanie procesora

Nie trzeba do tego specjalnego kernela. Mozna pobrac wersję która korzysta z dkms i przy kompilacji generuje paczkę deb. Znajdziesz ją tutaj: http://www.linux-phc.org/forum/viewtopic.php?f=7&t=267&hilit=phc+intel+pack+rev6.tar.bz2. Po instalacji pliku deb i załadowaniu modułu (ładuje się automatycznie przy starcie systemu) w lokalizacji /sys/devices/system/cpu/cpu0/cpufreq tworzą ci się nowe pliki. Najbardziej interesuje nas plik phc_vids, który przechowuje informacje o napięciach dla procka. Ja mam dostępne 4 częstotliwości taktowania więc w pliku phc_vids znajdują się cztery wartości. Obniżając te wartości obniżasz napięcie na procku. W momencie gdy obniżysz napięcie zbyt dużo komputer się zawiesi, więc musisz je tak dobrac aby nawet przy pełnym obciążeniu procek działał stabilnie.

Offline

 

#10  2012-06-24 20:38:47

  Huk - Smoleńsk BULWA!

Huk
Smoleńsk BULWA!
Zarejestrowany: 2006-11-08

Re: skalowanie procesora

@skullman:

Nie tyle na starszych co na desktopach, generalnie panuje taka zasada że procki laptopowe mają znacznie lepsze możliwości skalowania co wyniki oczywiście z konieczności oszczędności prądu na baterii. Na desktopach aż tak bardzo się to po prostu nie przydaje, stąd znacznie mniejsze możliwości skalowania.

Nie wiem jak jest na nowych procach, ale stawiam że o ile taki i7 w lapku brata potrafi się zeskalować w trybie idle do 800 Mhz (a może 400 Mhz?, pewności nie mam), to jego odpowiednik w stacjonarce będzie miał minimalne taklowanie 1600 Mhz (przy maksymalnym takim samym).

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)

[ Generated in 0.007 seconds, 11 queries executed ]

Informacje debugowania

Time (s) Query
0.00011 SET CHARSET latin2
0.00005 SET NAMES latin2
0.00131 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.144.90.236' WHERE u.id=1
0.00068 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.144.90.236', 1732298235)
0.00049 SELECT * FROM punbb_online WHERE logged<1732297935
0.00049 SELECT topic_id FROM punbb_posts WHERE id=204564
0.00005 SELECT id FROM punbb_posts WHERE topic_id=21485 ORDER BY posted
0.00028 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=21485 AND t.moved_to IS NULL
0.00027 SELECT search_for, replace_with FROM punbb_censoring
0.00086 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=21485 ORDER BY p.id LIMIT 0,25
0.00075 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=21485
Total query time: 0.00534 s