Automatyzacja ustawień chłodzenia w komputerze

1

Z nudów zająłem się ostatnio pimpowaniem komputera i przyszedł mi do głowy potencjalnie przeinżynierowany w cholerę pomysł na zrobienie tego lepiej.
Diagram poglądowy:
screenshot-20230128162458.png
Czyli mamy parę czujników:

  • mikrofon (pomiar głośności)
  • czujniki mocy/temperatury
  • czujniki obrotów wentylatorów i pompy

Do tego dochodzą efektory w postaci:

  • kontrola RPM wentylatorów
  • kontrola RPM pompy

To co sobie wyobrażam dalej (jak to ma działać):

  • Wykonywana jest seria testów dla różnych poborów mocy, prędkości obrotowych
  • Mierzona jest efektywność odprowadzania ciepła z układu
  • Mierzona jest głośność.

Wyniki trafiają do jakiegoś optymalizatora (nie ważne, czy ML, czy "zwykła" optymalizacja na wielu wymiarach), tworzony jest profil dla kontrolera, użytkownik cieszy się niskimi temperaturami i najmniejszym możliwym dla nich hałasem PC.
Oczywiście może być tutaj więcej żródeł ciepła, chłodnic, wentylatorów....

Waszym zdaniem ma to jakieś szanse powodzenia od strony technicznej?

2

@piotrpo:

Ciekawe pytanie ze względu na to, ze zostało postawione.

ALE
Odpowiedź negatywna.

Pomiar hałasu ma sens, i sądzę, że jest robiony w (lepszych) firmach developujacych hardware komputerowy, ale totalnie nie ma sensu "na runtime", u endusera.
Z wielu powodów, podam dwa: a) zupełny brak gwarancji braku hałasu zewnętrznego *) b) koszty

Moje obserwacje elektroniki są takie, ze nawet jesli się prezentuije userowi na jakimś LCD parametr (u Ciebie hałas w dB), to nie pochodzi z czujnika (np hałasu), ale został wyskalowany przez producenta ze znacznie prostszego żródła (obrotów / sek)

*) jak uK będzie rozwiązywał układ równań, może mu wyjść ujemna korelacja tego co robi "pro hałasowego" z rzeczywistym "hałasem"

0

No "runtime" to nie ma sensu, raczej bym widział to tak, że jest wykonywana seria testów (kombinacji obciążenia/obrotów/hałasu), tworzone są jakieś tam optymalizacje w celu znalezienia lokalnych minimów hałas/efektywność, gotowy model trafia do kontrolera i ten już ma do wykonania prostą robotę - na wejściu aktualne odczyty temperatury/produkowanego ciepła, na wyjściu obroty dla każdego z hałaśników.

1

Do tego dochodzi kwestia obudowy, jedne tłumią hałas lepiej inne gorzej. Tak więc mikrofon od decybeli musiał by być na zewnątrz. Do tego dochodzi kwestia komputer na biurku czy pod, i jak daleko od użytkownika. I co jak takowy ma założone słuchawki z skuteczną redukcją hałasów otoczenia? A obroty i tak ustawia się według temperatury chłodzonego elementu / płynu jak takowy jest w układzie. Głośnie nie głośno, chłodzenie ma być przede wszystkim skuteczne bo inaczej komputer ograniczy wydajność wyłączy się na wskutek przegrzania (zarówno procesory jak i karty graficzne mają zabezpieczenia przed przegrzaniem).

ps krzywą wentylatorów / pompy (jakie obroty przy danej temperaturze wybranego elementu) można ustawiać ręcznie, jak ci się chce możesz głośność uwzględnić przy swojej

0

@sig: Jasne, ze są różne obudowy, ale niezależnie od tego jak tłumią hałas, to im cichsze źródło, tym ciszej, również na zewnątrz. Wiem, że są krzywe w BIOS/oprogramowaniu producenta płyty, ale to ręcznie przeciągane, proste krzywe, chodzi głównie o to, żeby wiedzieć jak je ustawić. Do tego dochodzą jeszcze takie rzeczy jak bezwładność cieplna układu, to, że wentylator A ma większy wpływ na temperaturę, niż wentylator B, histereza itp.

Albo jeszcze inaczej - myślę, o czymś w stylu enforced learning, czyli jakieś tam AI dąży do osiągnięcia ideału i uczące się na swoich błędach/sukcesach.

2

OK, ale nie czaję totalnie idei mierzenia hałasu. W sensie - co to zmieni?
Jeśli w danym momencie CPU/GPU/cokolwiek się grzeje, to trzeba to schłodzić. Im więcej ciepła trzeba odprowadzić, tym bardziej wiatrak się podkręci. I teraz co, jeśli się okaże, że układ jest za głośny? Zmniejszamy prędkość i niech procek się zagotuje? Dla mnie priorytetem jest jednak odpowiednie chłodzenie - nawet, jeśli będzie ono szumieć. A jak chcesz mieć ciszę to zmień chłodzenie na lepsze/wodne.

0

To trochę inaczej niż opisujesz. Dzisiejsze CPU rozpędzają się tak daleko, jak im limity mocy (W) i temperatury pozwalają. Jeżeli CPU osiąga nadmierną temperaturę, to zwalnia.
Z drugiej strony, mając to lepsze chłodzenie, wcale nie chcesz, żeby działało na 100%, bo osiągnięcie najniższej możliwej temperatury CPU nie jest twoim celem - wystarczy "zadowalająca" temperatura.
Dodatkowo, mając chłodzenie wodne, złożone z kilku różnych elementów:

  • CPU
  • GPU
  • litra wody o sporej pojemności cieplnej
  • 1-2 chłodnic
  • kilku wentylatorów

Chcesz osiągnąć jakieś optimum (cokolwiek to znaczy) pomiędzy wydajnością całości, a emitowanym hałasem.

Teraz parę moich hipotez:
sterowanie układem chłodzenia wyłącznie za pomocą aktualnej temperatury CPU/GPU nie ma sensu, bo np. odpalenie pakowania dużego pliku wskoczy spowoduje maksymalne użycie CPU (i maksymalny pobór mocy), skokowy wzrost temperatury CPU, ale nie ma sensu uruchamiać całej maszynerii na pełnej mocy, bo płyn chłodzący ma temperaturę na poziomie pokojowej (pewnie warto to mierzyć...) i niżej nie zejdzie, ale może być sens zwiększyć przepływ płynu chłodniczego w układzie, żeby efektywniej odbierać energię cieplną z CPU.
Dla odmiany, jeżeli CPU jest idle, to nadal może być celowe podniesienie delikatnie obrotów wentylatorów, bo temperatura płynu chłodniczego jest za wysoka i warto ją kosztem delikatnego hałasu wentylatorów obniżyć, żeby zwiększyć możliwą do wykorzystania pojemność cieplną.

Efektywność chłodzenia za pomocą różnych wentylatorów może być różna, a hałas przez nie generowany na podobnych poziomach. W takim przypadku, bardziej opłacalne jest podniesienie obrotów tych bardziej efektywnych, bo jest to "tańsze", zakładając, że to właśnie hałas jest "kosztem".

Czyli w wersji TL:DR
Odpowiednie chłodzenie jest ważne, ale powinno zostać osiągnięte możliwie małym kosztem hałasu.

0

@piotrpo:

Nadal podkreślam: można wymierzyć hałas u producenta, wbudować mapy reakcji we flashe, jak na hamowni produkcyjny (albo u tunera wyśrubowany samochód, ale to oddzielna rozmowa) - ale nie sposób stale jeżdzić z hamownią.

0

@ZrobieDobrze: Przewidywanie jak będzie użyty komputer za chwilę jest trudne, ale odczyt ile mocy jest aktualnie używane przez CPU / GPU jak najbardziej tak.
screenshot-20230128194607.png
Co do problemu z odczytem natężenia dźwięku. Owszem, masz rację, nie da się (nie ma sensu) budować dzwiękoszczelnej komory, odizolowanej od otoczenia, żeby zapewnić dokładność pomiaru. Ale znowu:

  • Jeżeli poziom tła (który też da się zmierzyć...) jest wyższy niż poziom odczytu, to nie ma sensu myśleć dalej, bo w praktyce hałas będzie niesłyszalny dla człowieka.
  • Jeżeli jest niższy, to da się już coś odczytać. Tutaj nie potrzeba, jak mi się wydaje jakiejś wielkiej dokładności, czy nie jest nawet istotny pomiar bezwzględny. Ot robi się głośniej, albo ciszej, trochę, albo bardzo.
0

Odczyt mocy jest aproksymowany (nie kłoce się, być może z wystarczająca dokładnością - na pewni nie czterocyfrową, to tylko marketing/robota programistów niekumatych w numeryce) . Nie da się w CPU wbudować watomierza. Zrozum

0

wystarczy "zadowalająca" temperatura.

No ale nadal - głównym kryterium jest kwestia temperatury, a nie głośności. W sensie - ustawiasz sobie jakąś pożądaną/akceptowalną temperaturę i dajesz obroty śmigiełka najniższe, jakie się da - aby się zmieścić w ustalonym zakresie temperatur. Po co tutaj mikrofon?

0

@cerrato: Mam wrażenie, że kierujesz się tu logiką z komentarzy na Onecie, jak jeszcze były, czyli "nie powinniśmy przeznaczać kasy na X, tak długo jak są dzieci umierające na raka". Znowu zakładam (ale to scientific guess), że przy stałym poborze prądu przez CPU, zależność pomiędzy temperaturą CPU a generowanym hałasem nie jest liniowa, a bliżej jej do czegoś takiego:
screenshot-20230128202142.png
Jeżeli to założenie jest prawdziwe, to miejsce wskazane przez strzałkę, będzie bardzo interesującym optimum dla układu, bo dalsze zwiększanie prędkości wentylatorów (hałasu), nie przełoży się już istotnie na spadek temperatury.

1

Ale CPU "wykręca się" na dużą moc tylko pod dużym obciążeniem, a wtedy nie chcesz żeby je "ubezwłasnowolnione" chłodzenie spowalniało. Tak więc jak jest za głośne, to znaczy że czas nie lepsze chłodzenie, a nie kastrację procka thermalthrotligiem. Zwłaszcza że wysokie temperatury skracają jego żywotność.

0

@sig: Jasne, tylko o ile to jest prawdą w przypadku chłodzenia powietrznego, to tutaj sprawa wygląda trochę inaczej - krótki skok temperatury (np. 10s na rozpakowanie jakiegoś archiwum) nie musi z automatu wkręcać chłodzenia z 1l wody w środku na wyższe obroty, bo 10s oddawania mocy na poziomie 230W nie podniesie znacząco temperatury wody:
230W *10s = 2.3kJ / c ( 4,18 kJ/kgK) = ~0.5K
O tyle też podniesie się "dodatkowo" temperatura CPU. W takim przypadku, skuteczną taktyką było by zostawić tak jak jest, dać skoczyć temperaturze chłodziwa (i co za tym idzie, CPU) o pół stopnia i zaczekać aż temperatura wróci do "standardowej", nie podnosząc w tym czasie poziomu hałasu.
Potencjalnie, może być opłacalne za to zwiększenie przepływu wody w układzie, żeby skuteczniej odbierać ciepło z samego CPU do wody.

Czysto intuicyjnie, prędkość przepływu chłodziwa, powinna być jakoś skorelowana z temperaturą (mocą?) grzałki, prędkość przepływu powietrza, raczej z różnicą temperatur pomiędzy chłodziwem, a temperaturą powietrza chłodzącego.

0

dalsze zwiększanie prędkości wentylatorów (hałasu), nie przełoży się już istotnie na spadek temperatury.

Tak, zgadzam się, że zależność temperatury, prędkości śmigła i hałasu nie jest liniowa (i nigdzie nie pisałem, że taka miałaby być), ale nadal nie czaję logiki Twojego założenia (zresztą nie tylko ja - patrz chociażby @sig).

Chodzi mi jedynie o to, że moim zdaniem podchodzisz do tematu od tyłu.
Mierzyć nie powinno się hałasu, ale temperaturę.
To jej obniżenie jest priorytetem - ustalasz jakiś zakres temperatur pożądanych/dopuszczalnych i tak kręcisz wiatraki, żeby to utrzymać. Jak jest zapas temperatury - to możesz je spowolnić (lub nawet zatrzymać). A jak robi się za ciepło to dajesz ile bozia dała na śmigło i mimo pokazanego punktu strzałką na wykresie, po przekroczeniu którego już za wiele nie uzyskasz, kręcisz wiatrak na maksa bo nawet ten niewielki zysk może ocalić CPU albo spowodować, że się system nie wychrzani/komp nie wyłączy w celu ochrony sprzętu.

Powtarzam - priorytetem jest utrzymanie temperatury, a nie odgłos. Ten drugi jest pochodną prędkości wiatraków, która to prędkość zależy od temperatury. A ona z kolei wynika z wielu czynników, ale głównym (i najmocniej się zmieniającym) jest obciążenie procka czy GPU.

O tyle też podniesie się "dodatkowo" temperatura CPU. W takim przypadku, skuteczną taktyką było by zostawić tak jak jest, dać skoczyć temperaturze chłodziwa (i co za tym idzie, CPU) o pół stopnia i zaczekać aż temperatura wróci do "standardowej", nie podnosząc w tym czasie poziomu hałasu.

No tak, ale przecież nikt nie każe podkręcać wiatraków jak temp. się zmieni o pół stopnia. To wszystko o czym piszesz to się zgadzam w pełni - tylko sposobem realizacji tego/osiągnięcia założonych celów jest rozsądne mierzenie temperatury, może np. z uwzględnieniem histerezy, a nie mikrofon i odczyt poziomu szumów.

1
piotrpo napisał(a):

@sig: Jasne, tylko o ile to jest prawdą w przypadku chłodzenia powietrznego, to tutaj sprawa wygląda trochę inaczej - krótki skok temperatury (np. 10s na rozpakowanie jakiegoś archiwum) nie musi z automatu wkręcać chłodzenia z 1l wody w środku na wyższe obroty, bo 10s oddawania mocy na poziomie 230W nie podniesie znacząco temperatury wody:

Procek potrzebuje czasu żeby się nagrzać, więc tak nie jest. Co zaś się tyczy uwzględnienia temperatury powietrza, to układy są przystosowane do pracy w określonym zakresie temperatur niezależnie od tego. Przypuszczam też że podobnie jak w przy chłodzeniu w samochodzie temperatura "rozkręcenia" obrotów jest wyższa niż temperatura redukcji ich, więc rozpakowywanie plików nie ma wspływu na nic przy poprawnej krzywej.

0
cerrato napisał(a):

Chodzi mi jedynie o to, że moim zdaniem podchodzisz do tematu od tyłu.
Mierzyć nie powinno się hałasu, ale temperaturę.
To jej obniżenie jest priorytetem - ustalasz jakiś zakres temperatur pożądanych/dopuszczalnych i tak kręcisz wiatraki, żeby to utrzymać. Jak jest zapas temperatury - to możesz je spowolnić (lub nawet zatrzymać). A jak robi się za ciepło to dajesz ile bozia dała na śmigło i mimo pokazanego punktu strzałką na wykresie, po przekroczeniu którego już za wiele nie uzyskasz, kręcisz wiatrak na maksa bo nawet ten niewielki zysk może ocalić CPU albo spowodować, że się system nie wychrzani/komp nie wyłączy w celu ochrony sprzętu.

Tak, obniżenie temperatury CPU jest priorytetem, bo po to się buduje ten układ...

No tak, ale przecież nikt nie każe podkręcać wiatraków jak temp. się zmieni o pół stopnia. To wszystko o czym piszesz to się zgadzam w pełni - tylko sposobem realizacji tego/osiągnięcia założonych celów jest rozsądne mierzenie temperatury, może np. z uwzględnieniem histerezy, a nie mikrofon i odczyt poziomu szumów.

Ale gdzie ty wyczytałeś, że za pomocą mikrofonu chcę sterować intensywnością chłodzenia? Mikrofon i całe to mierzenie hałasu, jest jedynie w celu stworzenia profilu, bo zakładam, że jest więcej niż jedna konfiguracja układu chłodzenia (w sensie ustawienia prędkości obrotowych różnych wiatraków) dająca ten sam efekt chłodzący, a różnią się te konfigurację poziomem hałasu. Należy więc wybrać taką konfigurację, która jest najcichsza, przy wymaganym efekcie.

@sig: Ale porównujesz te kilka gramów krzemu, miedzi i acetonu z kilogramem wody?

2

Fajne dywagacje. Ja jednak uważam, że w przypadku chłodzenia wodnego może wystarczyłoby zwiększyć pojemność układu. Coś jak w przypadku chłodzenia powietrzem zwiększenie radiatora i powierzchni oddawania ciepła. Nie wiem czy jest sens budowy takiego układu. Oczywiście też nie proponuję dołożenia chłodnicy od Stara 266. Uważam, że nie damy rady przewidzieć obciążeń CPU/GPU na dłuższą metę. Zależy to czysto od użytkowania i wykonywanych czynności. No i schłodzić musimy niestety te podzespoły. Nie znam też budowy Twojego komputera, ale np. hałas możesz mieć największy z zasilacza w momencie obciążenia i wtedy pomiar hałasu i sterowanie innymi elementami układu nie ma sensu.

0

@jurek1980: Zwiększenie pojemności układu to oczywiście jakiś tam sposób na "wygładzenie" skoków temperatury. I teoretycznie po podłączeniu się do np. Wisły, problem rozwiązany. Faktycznie nie pomyślałem o zasilaczu (i potencjalnie innych podzespołach generujących hałas w korelacji z temperaturą/mocą)

1

Problem jest dużo bardziej złożony. Dziś radiatory i duże ilości ciepła oddają pamięci, elementy płyty głównej np. sekcje zasilania, a nawet dyski M.2. I teraz wykonujemy dużo operacji na pamięci która grzeje wnętrze kompa. To podbija ogólnie temperaturę wewnątrz i coś musi ją oczywiście odebrać i gdzieś przekazać do otoczenia. Teraz jeśli tylko sterujemy pracą pompy/ wentylatorów to nie damy rady ustawić profilu. Oczywiście jeśli RAM bierze więcej prądu to i CPU też, ale nie koniecznie te wartości muszą być liniowe. Jak masz wenę potestuj i zobaczymy czy udaje Ci się coś osiągnąć.

1

Jeśli zakładasz bufor cieplny z kilku litrów wody to głównym wyznacznikiem obrotów wentylatora powinna być temperatura tego bufora a nie ciepło generowane przez CPU. Jedyną sytuacją kiedy musisz uwzględnić aktualne TDP jest wtedy kiedy ten układ wymaga regulacji obrotów pompy obiegowej aby odebrać te ciepło z CPU do bufora.
Wentylatory można by wyeliminować stosując jako bufor odpowiednie akwarium i tylko dolewać wodę która odparowała :D

0

@jurek1980: No właśnie trochę gadżetów zamówiłem, sprawdzę w praktyce jak to wychodzi. Płyty, dyski, pamięci - wiadomo, też jakiś tam wpływ mają. Pytanie czy istotny - okaże się.

@Jedajo: Tak, widzę całość jako okład wymiany energii:
CPU|GPU -> chłodziwo -> powietrze
Dla pierwszej wymiany istotna jest temperatura chłodziwa i szybkość przepływu przez blok wodny CPU, dla drugiego ilość (i temperatura) powietrze przeciskanego przez chłodnice.

0

Osobiście szedł bym raczej w stronę "recyklingu" tego całego ciepła, celem ograniczenia zużycia mocy. NP silnik Stirlinga z jakimś generatorem, do pracy starczy mu ciepło z dowolnego źródła. Technologia dostarczenia do niego istnieje (heatpipe-y), tylko jak je z tych wszystkich grzejących się elementów "pozbierać"? Trzeba by jakiś standard dla bloków nakładanych na takowe wprowadzić.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.