LWN.net Logo

Client vs Server Intelligence

Client vs Server Intelligence

Posted Jun 25, 2012 18:12 UTC (Mon) by alankila (subscriber, #47141)
In reply to: Client vs Server Intelligence by etienne
Parent article: St. Pierre: The Linux Graphics Stack

While that is an interesting statement in itself, in my head I was mostly referencing the times it takes to do operations like memory copies, alpha blending, bilinear texture filtering and (maybe) running user-defined programs per pixel of output. A high-end GPU has around 1000 cores today, and I imagine many of them have performance that is some relatively large fraction of a typical desktop CPU single core's performance.

That people *can* nevertheless turn off all GPU acceleration and get usable performance for some simple tasks is nice, but it also seems to be a fact that it is not possible to watch a fullscreen video or animate windows on screen or do transparency with fluid frame rates without GPU taking that work off the CPU's hands.


(Log in to post comments)

Client vs Server Intelligence

Posted Jun 25, 2012 19:03 UTC (Mon) by raven667 (subscriber, #5198) [Link]

I think this whole conversation thread is off in the weeds trying to compare general purpose CPU cores to the types of cores that GPUs contain, they are so different as to not be directly comparable. They are designed to run different kinds of software entirely, a GPU can't run general purpose software, a CPU can run GPU software but doesn't have the highly parallel resources to do so quickly.

Client vs Server Intelligence

Posted Jun 27, 2012 2:04 UTC (Wed) by alankila (subscriber, #47141) [Link]

Yes, but that is exactly the core reason why we have GPU doing the rendering, so maybe it still relates to why we use them. I am basically saying they are a necessary evil, not necessarily a great design from an abstract point of view.

Client vs Server Intelligence

Posted Jun 28, 2012 9:31 UTC (Thu) by etienne (subscriber, #25256) [Link]

> a CPU can run GPU software but doesn't have the highly parallel resources to do so quickly.

I fully agree, but I do not see that many highly parallel resources needs.
To display chars on my screen, or draw decorations, that is basically a serial problem because each chars to display is produced by a serial application and is usually part of a sequence forming a single sentence.
To move square windows on the desktop, you can obviously move each line separately (and even divide further each line) to keep each GPU processor busy - but do you need a processor to do a DMA/multiple layer memory?
To display MPEG video on the screen, you have a single file/internet stream and each frame is highly related (inter frame compression) so that you cannot parallelise the problem too much without having synchronisation problems.
I do agree you need highly parallel resources when you display mathematically described "virtual reality" like video games, or when you try to display the movie I was talking of on the side of a rotating cube, or do the best desktop decorations people like on the first day they try their new computer.
IHMO a CPU could manage all of the stuff I need if it had an optimised access to video memory, but optimised framebuffer would go against the business model of video card manufacturer who need to sell a new card with more processor every few years.
Obviously, it is not a black or white problem: video encoding, decryption, resizing and color space transformation do fit the parallel solution quite well.

Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds