[C++] Stabiliteit CPU

Pagina: 1
Acties:

  • Iska
  • Registratie: November 2005
  • Laatst online: 24-08 21:44

Iska

In case of fire, use stairs!

Topicstarter
Hey allemaal,

Ik wil een klein (met nadruk op klein) programmaatje schrijven waarmee de stabiliteit van een CPU getest kan worden. Ik weet dat er veel van dit soort programma's bestaan maar ik wil speciale hebben die ik achter mijn eigen bootloader kan hangen.
Nu heb ik zo snel 2 methodes gevonden om je CPU te stressen:
- FFT (Fast Fourier Transformaties)
- Pi berekenen

Nu ben ik nog geen ontzettende wiskunde held (1ste jaar Technische Natuurkunde @ TU Delft) dus ik ga liever voor Pi dan voor de FFT's. Nu vroeg ik mij af waar het meestal fout gaat bij een geOC'de CPU en hoe je dan die fouten kan detecteren. Is het gewoon simpelweg Pi met veel decimalen laten berekenen en om de zoveel tijd kijken of het nog klopt of zijn hier speciale methodes voor?

Graag jullie input ;)

Verder vroeg ik mij nog af of je Visual C++ ook in flat binary kan laten compilen, maar die vraag hoort eigenlijk ergens anders ;)

Alvast bedankt!

-- All science is either physics or stamp collecting


  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

Volgens mij is het vooral de bedoeling om de CPU zo hard mogelijk te belasten.
Dit wil zeggen: probeer zoveel mogelijk instructie-level parallellisme te introduceren, probeer alle mogelijkheden van de CPU zo extensief mogelijk te benutten.

ASSUME makes an ASS out of U and ME


  • Iska
  • Registratie: November 2005
  • Laatst online: 24-08 21:44

Iska

In case of fire, use stairs!

Topicstarter
Multithread is inderdaad wel handig ;)

Maar heb je nog specifieke 'CPU mogelijkheden'?

-- All science is either physics or stamp collecting


  • Tux
  • Registratie: Augustus 2001
  • Laatst online: 16-09 19:01

Tux

Instructie-level parallellisme is niet hetzelfde als multithreading (thread-level parallellisme) he ;)

[ Voor 37% gewijzigd door Tux op 30-09-2009 17:52 ]

The NS has launched a new space transportation service, using German trains which were upgraded into spaceships.


  • Iska
  • Registratie: November 2005
  • Laatst online: 24-08 21:44

Iska

In case of fire, use stairs!

Topicstarter
Weer wat geleerd ;)
Is in ieder geval een hoop minder programmeerwerk :D

-- All science is either physics or stamp collecting


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

Nee, want je wil in feite allebei, en alle mogelijke combinaties :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 08-09 11:33
En als je echt voor hitte gaat (wat je natuurlijk het liefste wilt bij oc-testen). Dan wil je ervoor zorgen dat je data in de regsiters van je CPU passen, zo hoeft je cpu nooit te wachten op data.

Hoewel ik helemaal voor ben om voor testen en hobby programma's te schrijven die er al zijn, is het wel leuk om even te kijken naar Prime95 die meerdere stress tests heeft met meerdere opties. (Leuk om te gebruiken en handig voor ideeen).

~ Mijn prog blog!


Acties:
  • 0 Henk 'm!

  • Iska
  • Registratie: November 2005
  • Laatst online: 24-08 21:44

Iska

In case of fire, use stairs!

Topicstarter
Thx voor jullie input ;)

Ik wilde iig ff zeggen dat het C++ compile -> binary gelukt is dankzij dit artikel:
http://www.codeproject.com/KB/tips/boot-loader.aspx

-- All science is either physics or stamp collecting


Acties:
  • 0 Henk 'm!

  • _js_
  • Registratie: Oktober 2002
  • Laatst online: 18-08 21:31
roy-t schreef op woensdag 30 september 2009 @ 18:34:
En als je echt voor hitte gaat (wat je natuurlijk het liefste wilt bij oc-testen). Dan wil je ervoor zorgen dat je data in de regsiters van je CPU passen, zo hoeft je cpu nooit te wachten op data.

Hoewel ik helemaal voor ben om voor testen en hobby programma's te schrijven die er al zijn, is het wel leuk om even te kijken naar Prime95 die meerdere stress tests heeft met meerdere opties. (Leuk om te gebruiken en handig voor ideeen).
Als je genoeg registers hebt en de berekeningen goed verdeelt, anders krijg je pipeline stalls. En het blijft jammer als je dit test en je denkt dat de CPU stabiel is terwijl met echte programma's ineens blijkt dat de L1 data cache het al heeft opgegeven en je systeem toch instabiel is.

Acties:
  • 0 Henk 'm!

  • MLM
  • Registratie: Juli 2004
  • Laatst online: 12-03-2023

MLM

aka Zolo

Om dit soort dingen goed te doen moet je eigenlijk een profiler gebruiken die hardware counters ondersteund, zo kan je bijvoorbeeld kijken hoe vaak je een pipeline stall hebt etc. Gezien dat iedere CPU eigenlijk andere specificaties heeft, is het denk ik vrij ingewikkeld om een goed programma te schrijven dat alle CPU's 100% stresst.

Maar ik zie niet in waarom je niet een bestaand programma pakt (orthos doet het best goed)

-niks-


Acties:
  • 0 Henk 'm!

  • oeLangOetan
  • Registratie: Maart 2002
  • Laatst online: 06-08 17:19
Ik ben voor mijn masterthesis net met iets gelijkaardig bezig, wij genereren syntetische programma's (met bepaalde eigenschappen) die we met machine learning optimaliseren om CPU steeds zwaarder te stressen.
Typisch ga je niet ver geraken met bestaande algoritmes, je zal 1 bottleneck hebben (bv branching, ILP etc) waardoor andere delen van de cpu niet maximaal belast worden.
Pagina: 1