Monday, November 23, 2009  
Google
Web pcquest.com

CIOL Network sites

Search by Issue | Sitemap | Advanced Search

• For most updated version of DQ TOP 20 issue, visit dqindia.com • Ad : Play and Plug ERP by IBM
 Home > Technology

Using GPUs for Parallel Processing

Continued from page: 1

Sujay V Sarma

Saturday, March 10, 2007

Stream processing
Because these cores operate independently, they cannot share any data and so there are two types of memory locations associated with them-one's called a 'Texture' memory which can only be read from; while the other is called 'Framebuffer' which can only be written to. Of course, data in the Framebuffer can be routed back to the Texture memory to serve as input for another stage of processing before it is sent to the screen. If you consider that all data in the texture memory needs to have the same instructions applied to them, then modern parlance calls this a 'Stream'. The application of the shader logic on this is called 'Stream Processing' and the logic itself is called 'Kernel'. Related terms are DPP (Data Parallel Processing) and GPGPU (General Purpose computing on GPU).

Regular GPU based stream computing platforms utilize identical hardware (as in graphics cards with identical capabilities). But this need not be the rule and we can use dissimilar hardware, which AMD calls 'Asymmetric processing'. ATi's cards can be used this way to handle different tasks depending on the capabilities of each card plugged in. For instance, one can do physics while the other can be used for rendering. Of course, in such a system, it is not easy to scale up the performance by simply adding more cards, as this will only add to the system's asymmetry. Another problem is workload distribution to optimize performance. So, asymmetric processing can be used even by the same application with multiple tasks that are independent, with no direct communication amongst them.

The GPU contains sets of Pixel Shader cores which can execute parallel threads very quickly

Developer support
Both ATi and NVIDIA have released SDKs (software development kits) to let developers make applications that make use of GPUs. The problem was that traditional compilers cannot directly optimize for graphics related processing easily. NVIDIA's solution is called CUDA (Compute Unified Device Architecture) while that of ATi is called CTM (Close To the Metal). CUDA is actually a C-like compiler for GPU applications. The engine provides a thread controller architecture that takes care of thread management for applications that stream through the GPU. CTM on the other hand, is more a hardware driver that exposes API that GPU applications can call to achieve similar end results.

Applications that want to harness the power of stream computing through the GPU must use CTM or CUDA to route their code through the GPU. CTM or CUDA will perform the arbitration of which code to route to the GPU and which to the regular CPU.

Sadly there is no vendor-agnostic way to let applications run seamlessly regardless of which of the two vendors supplied your graphics card. For now, early adopters will have to be contended with building uni-vendor stream computing infrastructure which may not be the best-of-breed or the most cost effective solution around. Clearly, much work needs to be done and it is very early days yet to put this down as a success or write it off as too complicated.

Applications of Stream Computing

The technology behind stream computing can be used in a variety of applications where you have a large pool of data, each of which requires the same set of instructions, independent of each other. In developer parlance, we can put this as-stream computing is best suited for massively multi-threaded applications, with parallel threads. Application areas include: protein folding analysis in biotechnology; seismic analysis for oil and gas exploration; signal processing for defense services; various simulations and forecasting model processing in the financial industry; face recognition and speech recognition. Folding@Home, a distributed stream computing paradigm from AMD/ATi has been around since the 2000s, using the idle time on traditional CPUs to crunch the way through the complicated problem of analyzing protein folding patterns and effects. In September 2006, the project switched to using stream computing cores in GPUs to become faster. At present the projects are helping the medical world to understand Alzheimer's Disease, Cancer, Huntington's Disease, Osteogenesis Imperfecta, Parkinson's Disease and the relationships between various ribosomes and antibiotics.

Page(s)   1  2  

Print Comment Email DiggDigg DeliciousDel.icio.us RedittReddit TwitterTwitter


Untitled Document



ZTE:Leading CDMA Technology



   
 

 
 

Magazine Subscription | RQS | Contact Us | Team PCQuest | Advertising - Print | jobs@cybermedia