Guest View: Let's go beyond the CPU to the GPU



Email    print   
September 15, 2010 —  (Page 1 of 3)
For a lot of people, disruptive technology makes them uncomfortable. It changes the rules. It takes you out of your comfort zone. Not me—I love it.

Traditionally, the way we think about software development is that you have a CPU (central processing unit) and a GPU (graphics processing unit), and each is good at handling certain sets of tasks. The x86 CPU is good at executing a sequence of stored instructions, and even has the ability to handle multiple instructions simultaneously (instruction-level parallelism). The GPU is a powerful vector engine that can operate simultaneously on multiple data items (data parallelism). Developers have used the CPU for handling the majority of computational tasks, and the GPU for visualization and graphics-related functions. But it’s time to forget conventional wisdom and to rethink everything.

The GPU isn’t just for visualization anymore. The world is waking up to the fact that GPUs are high-performance, many-core processors that can be used to accelerate a wide range of applications. This knowledge is driving a shift in how applications are developed and accelerated.

This shift began with hardware optimizations in the GPU that enable software to harness its processing power for more general data structures. Microsoft’s Windows 7 and Apple’s Snow Leopard are prime examples of software designed to leverage next-generation graphics technology. And now the software development community has to figure out how to harness the GPU for computational tasks that can benefit from its very high computation and data throughput capabilities.

Let’s take a quick look at tools for programming the GPU. We have moved beyond the era where programming the GPU was a “bare metal” experience. Graphics libraries like Microsoft DirectX and OpenGL are widely used today for “traditional” GPU functions, such as creating 2D and 3D graphics and performing multimedia operations like image rendering, video transcoding, and even HD video conferencing.

DirectX is a set of low-level application programming interfaces (APIs) that includes support for high-performance 2D and 3D graphics, sound, and input. Components of DirectX include Direct2D, Direct3D and DirectCompute (more about that later). Several of these APIs use the GPU for hardware acceleration of tasks. For example, Direct2D is an immediate-mode, 2D graphics API introduced with DirectX 11 that utilizes hardware acceleration for high-performance and high-quality rendering for menus, user-interface elements, and heads-up displays. These APIs are used with Microsoft’s developer tools, mainly Visual Studio.



Related Search Term(s): multicore

Pages 1 2 3 


Share this link: http://sdt.bz/34637
 
Most Read Latest News Blog Resources

Add comment


Name*
Email*  
Country     


  • Comment
Loading




close
NEXT ARTICLE
Development tools are catching up to multicore
Developers are finding ways to overcome hardships and challenged posed by making software in multicore systems Read More...
 
 
 
 
News on Monday
more>>
SharePoint Tech Report
more>>


   

 
 

Download Current Issue
FEBRUARY 2012 PDF ISSUE

Need Back Issues?
DOWNLOAD HERE

Want to subscribe?


 
blogs tab
The problem with perfection
"The perfect is the enemy of the good," Voltaire said, or nearly said. He could have been talking about software development.
02/22/2012 11:13 AM EST

Let's get real about women in tech
The first step in solving a problem is admitting that it exists.
02/19/2012 04:16 AM EST

Lots of news from Apple
Apple is regaining a place of central importance in the technology world that it hasn't held since the 1970s. Here's what's new.
02/18/2012 07:10 PM EST

Book Giveaway! Pro jQuery by Adam Freeman
Looking to learn more about jQuery? Like us on Facebook for a chance to win a digital copy!
02/16/2012 10:58 AM EST

Literate programming: It's not going to happen.
Literate programming is an idealistic notion that has been rendered obsolete by modern source code editors and good programming practices.
02/15/2012 06:13 PM EST

Are you at risk for burnout?
Burnout is a severe problem and it can strike at any time. Here's how to tell if you are nearing the edge.
02/09/2012 02:16 PM EST

 
Events calendar tab
2/26/2012 to 2/29/2012
San Francisco
BZ Media

2/27/2012 to 3/2/2012
San Francisco
RSA

3/4/2012 to 3/7/2012
Las Vegas
IBM Tivoli

3/5/2012 to 3/9/2012
San Francisco
TechWeb

3/7/2012 to 3/15/2012
Santa Clara
Python Software Foundation