Graphic Cards NVIDIA graphics drivers to go multithreaded

Eazy

Forerunner
NVIDIA has plans to produce multithreaded ForceWare graphics drivers for its GeForce graphics products. Multithreading in the video driver should allow performance increases when running 3D games and applications on dual-core CPUs and multiprocessor PCs. De Waal estimated that dual-core processors could see performance boosts somewhere between five and 30% with these drivers.

http://techreport.com/onearticle.x/8459
 
software based- like hyperthreading
since when is hyperthreading s/w based in that sense.
Let us make it clear
multi threading is a software feature.
Dual core/hyper threading is a hardware capability which enables multi-threading (as well as the more general multi-processing/multi-tasking) to provide performance increases.
Actually multi-tasking can be either multi=processing or multi-threading. It depends on whether the threads are i user or kernel spae, wat sort of scheduling the OS (and user space libraries) provide etc.... that is an OS concept.
But I don't get how such a big performance gain can be had by a multi threaded driver.
If it is true, that means that the drivers make too heavy use of the CPU, ie the GPU system is not designed well.
 
Dude, multithreading (or Hyperthreading) is a feature that Intel provides on its CPUs which allow the CPU to process two threads simultaneously. Multitasking is the feature in the software that allows it to take advantage of the Hyperthreading feature in the CPU. I am not that ignorant about technology :bleh:
 
multithreading (or Hyperthreading) is a feature that Intel provides on its CPUs
Multithreading has NOTHING to do with intel processors.
Multithreading is possible even on an 80386 (admittedly intel, but 20 years old) ok?
Hyperthreading is Intel. (Others do provide similar features, tho they just call it hardware based multithreading on a single core)
 
Multithreading is something like this in pseudo code.
Code:
threadprog()
{
        thread th = createthread(function);
}

function()
{
//Do whatever you want the thread to do....
....
}

This can be executed on any damn x86 cpu that supports protected mode (or any cpu of any other architecture). However there is no parallel processing happening here. Either of the two threads (the parent or the new child) could be executed. The OS must support threading to allow such threads to exist.

However the hardware may have special instructions to accelerate such multithreaded scenarios. It may also do it automatically in a transparent manner like in (in marketing lingo - hyperthreading) as long as the OS is aware of those capabilities of the CPU.

Now multitasking is something else. Multitasking means that many processes can be executed at once by the operating system though the cpu will run only one at a single time. Multitasking doesnt automatically mean multithreading. A multitasking os may not support multiple threads. This was the case with linux until kernel 2.2 when pthread support was introduced. Now there is a difference between a process and a thread. A process means a program image in the memory. It may have exclusive access to I/O and stuff. The main thing is a process has its own address space and has a unique identifier called process id. Typically a process is created using the fork() command or something similar. A process may have multiple threads in it. I hope this clears it up.
 
Back
Top