New Blog Post by Dr. Pande
Moderators: Site Moderators, FAHC Science Team
New Blog Post by Dr. Pande
x
Last edited by TheWolf on Fri Jul 12, 2013 4:24 am, edited 1 time in total.
-
- Posts: 10179
- Joined: Thu Nov 29, 2007 4:30 pm
- Hardware configuration: Intel i7-4770K @ 4.5 GHz, 16 GB DDR3-2133 Corsair Vengence (black/red), EVGA GTX 760 @ 1200 MHz, on an Asus Maximus VI Hero MB (black/red), in a blacked out Antec P280 Tower, with a Xigmatek Night Hawk (black) HSF, Seasonic 760w Platinum (black case, sleeves, wires), 4 SilenX 120mm Case fans with silicon fan gaskets and silicon mounts (all black), a 512GB Samsung SSD (black), and a 2TB Black Western Digital HD (silver/black).
- Location: Arizona
- Contact:
Re: New Blog Post by Dr. Pande
The exponential nature of the bonus curve is what accounts for the larger shaded areas on the right. If I don't use my PC at all, I get a really high bonus, but the day I had to use it for RL stuff, the points dropped off very quickly.
How to provide enough information to get helpful support
Tell me and I forget. Teach me and I remember. Involve me and I learn.
Tell me and I forget. Teach me and I remember. Involve me and I learn.
-
- Posts: 887
- Joined: Wed May 26, 2010 2:31 pm
- Hardware configuration: Atom330 (overclocked):
Windows 7 Ultimate 64bit
Intel Atom330 dualcore (4 HyperThreads)
NVidia GT430, core_15 work
2x2GB Kingston KVR1333D3N9K2/4G 1333MHz memory kit
Asus AT3IONT-I Deluxe motherboard - Location: Finland
Re: New Blog Post by Dr. Pande
"Uses a full core" and "needs a full core" are slightly different cases. Most of the time the "use" seems to be just spin waiting for the (NVidia) GPU. Ideally, a device (HDD/SDD for example) is interrupt driven. A thread sets up a task for it, sends the task to the OS which then suspends the thread. Once the OS/driver receives an interrupt from the device (request completed), it resumes the thread: "here's the stuff you asked for, now go do something with it."TheWolf wrote:Many have overclocked CPU's, others don't, since it use a full CPU core "in most cases" per GPU naturally I would think the difference would be cause by the CPU type in use and if OCed or not.
Also not to leave out if the GPU is overclocked or not.
Your thoughts?
It may or may not be that blissful with GPUs. Judging by the use of a full core, there's some form of polling going on with (NVidia) GPUs. There are a few slightly different ways of doing that. In crude pseudocode:
- Tight spin wait
Code: Select all
// a small subtask has been started while( GPU_is_busy ) { // Lean & Mean: // do absolutely nothing else but loop, core at 100% } // proceed with new small subtask
- Co-operative spin wait
Code: Select all
// a small subtask has been started while( GPU_is_busy ) { // subtask is expected to finish soon // but not quite soon enough to be rude // so let's give the OS a chance to schedule // something else, and *hopefully* it'll resume us // "just on time" if that happens yield(); } // proceed with new small subtask
- Timered spin wait
Code: Select all
// a small subtask has been started while( GPU_is_busy ) { // OS provides a high resolution timer // compared to expected subtask duration, so // we'll either let the CPU core sleep for a while // or let the OS do something else with it for // a fixed duration sleep( x ); } // proceed with new small subtask
Option 2 worked quite well in my case (slow GT430 GPU and slow Atom330 CPU). I don't know how well that applies to a combination of faster GPU & faster CPU, but in my case the GT430 actually only needs about 10% of a single Atom330 core (or logical CPU, since it is a HyperThreaded 2C/4T CPU), YMMV.
Ultimately, CPU speed does make some difference with option 2 even when a full core is free for core_17, because more or less substantial amount of OS scheduling code gets executed between GPU_is_busy checks. So you may see small fluctuation in GPU usage, say 95% - 100%. Whether or not that is the main reason for the variation PG is seeing in their analysis is anyone's guess.
I'd go with 7im's explanation - the exponential nature of the bonus curve is the primary culprit for larger inconsistencies at high end. It has the potential to blow the tiniest fluctuation out of proportion, everything else is small potatoes compared to it. Good luck trying to stick with the max 10% variation policy...
Sometimes it is good to be the low end guy. Some 3k PPD fluctuation doesn't hurt one's feelings nearly as much as a 30k PPD fluctuation would.
Win7 64bit, FAH v7, OC'd
2C/4T Atom330 3x667MHz - GT430 2x832.5MHz - ION iGPU 3x466.7MHz
NaCl - Core_15 - display
2C/4T Atom330 3x667MHz - GT430 2x832.5MHz - ION iGPU 3x466.7MHz
NaCl - Core_15 - display