Thursday, April 22, 2010

What is OpenCL???

OpenCL (Open Computing Language) is a framework for writing programs that execute across heterogeneous platforms consisting of CPUs, GPUs, and other processors. OpenCL includes a language for writing kernels (functions that execute on OpenCL devices), plus APIs that are used to define and then control the platforms. OpenCL provides parallel computing using task-based and data-based parallelism. Its architecture shares a range of computational interfaces with two competitors, NVidia's Compute Unified Device Architecture and Microsoft's DirectCompute.

OpenCL gives any application access to the Graphical Processing Unit for non-graphical computing. The GPU had previously been available for graphical applications only. The GPU memory would be available to the operating system and or applications essentially as faster system memory than the main system memory Thus, OpenCL extends the power of the Graphical Processing Unit beyond graphics (General-purpose computing on graphics processing units). OpenCL is analogous to the open industry standards OpenGL and OpenAL, for 3D graphics and computer audio, respectively.

OpenCL was initially developed by Apple Inc., which holds trademark rights, and refined into an initial proposal in collaboration with technical teams at AMD, IBM, Intel, and Nvidia. Apple submitted this initial proposal to the Khronos Group. On June 16, 2008 the Khronos Compute Working Group was formed with representatives from CPU, GPU, embedded-processor, and software companies. This group worked for five months to finish the technical details of the specification for OpenCL 1.0

Tuesday, April 20, 2010

Microsoft DirectCompute

Microsoft DirectCompute is an application programming interface (API) that supports General-purpose computing on graphics processing units on Microsoft Windows Vista and Windows 7. DirectCompute is part of the Microsoft DirectX collection of APIs and was initially released with the DirectX 11 API but runs on both DirectX 10 and DirectX 11 graphics processing units. The DirectCompute architecture shares a range of computational interfaces with its competitors - the Khronos Group's Open Computing Language and NVIDIA's Compute Unified Device Architecture.

Monday, April 19, 2010

What is CUDA: Compute Unified Device Architecture

CUDA ( Compute Unified Device Architecture) is a parallel computing architecture developed by NVIDIA. CUDA is the computing engine in NVIDIA graphics processing units or GPUs that is accessible to software developers through industry standard programming languages. CUDA architecture shares a range of computational interfaces with two competitors -the Khronos Group's Open Computing Language and Microsoft's DirectCompute. Third party wrappers are also available for Python, Fortran, Java and MATLAB.

The latest drivers all contain the necessary CUDA components. CUDA works with all NVIDIA GPUs from the G8X series onwards, including GeForce, Quadro and the Tesla line. NVIDIA states that programs developed for the GeForce 8 series will also work without modification on all future Nvidia video cards, due to binary compatibility. CUDA gives developers access to the native instruction set and memory of the parallel computational elements in CUDA GPUs.

WHY CUDA?

CUDA has several advantages over traditional general purpose computation on GPUs (GPGPU) using graphics APIs.

   1. Scattered reads – code can read from arbitrary addresses in memory.
    2. Shared memory – CUDA exposes a fast shared memory region (16KB in size) that can be shared amongst threads. This can be used as a user-managed cache, enabling higher bandwidth than is possible using texture lookups
    3. Faster downloads and readbacks to and from the GPU
    4. Full support for integer and bitwise operations, including integer texture lookups.



KNOW MORE ABOUT CUDA...

Sunday, April 18, 2010

Some facts about Graphics Processing Units...

A graphics processing unit or GPU  is a specialized processor that offloads 3D or 2D graphics rendering. It is used in embedded systems, mobile phones, personal computers, workstations, and game consoles. Modern GPUs are very efficient at manipulating computer graphics, and their highly parallel structure makes them more effective than general-purpose CPUs for a range of complex algorithms. In a personal computer, a GPU can be present on a video card, or it can be on the motherboard. More than 90% of new desktop and notebook computers have integrated GPUs, which are usually far less powerful than those on a dedicated video card.

The IBM Professional Graphics Controller was one of the very first 2D/3D graphics accelerators available for the IBM PC. Released in 1984, 10 years before hardware 3D acceleration became a standard, its high price (~$4500 USD @ 1984 currency), slow processor, and lack of compatibility with then-current commercial programs made it unable to succeed in the mass-market.

OpenGL appeared in the early 90s as a professional graphics API, but became a dominant force on the PC, and a driving force for hardware development. Software implementations of OpenGL were common during this time although the influence of OpenGL eventually led to widespread hardware support. Over time a parity emerged between features offered in hardware and those offered in OpenGL. DirectX became popular among Windows game developers during the late 90s. Unlike OpenGL, Microsoft insisted on providing strict one-to-one support of hardware. The approach made DirectX less popular as a stand alone graphics API initially since many GPUs provided their own specific features, which existing OpenGL applications were already able to benefit from, leaving DirectX often one generation behind.

NVIDIA was first to produce a chip capable of programmable shading,

In 2008, Intel, NVIDIA and AMD/ATI were the market share leaders, with 49.4%, 27.8% and 20.6% market share respectively.

Monday, April 5, 2010

What is JQuery???

Recently I met one of my friend who is running a software company in Chandigarh. I talked to some of the employees of Cybrain Solutions and saw some demos of their cool websites created in Jquery. They recentlt started working in JQuery. As of there ar very few websites are live but they are currently working on approximately 15 websites. Even many clients come up with their requirements and say "Can I have a cool web portal in JQuery". They are very excited about the coolness of JQuery with good perfomance.

http://www.ppadprint.com/ ; This is first project by Cybrain Solutions and client want another website for another sister cocern.
JQuery is a lightweight cross-browser JavaScript library that emphasizes interaction between JavaScript and HTML. JQuery is the most popular JavaScript library in use today.

JQuery is free and open source software. jQuery's syntax is designed to make it easier to navigate a document, select DOM elements, create animations, handle events, and develop Ajax applications. jQuery also provides capabilities for developers to create plugins on top of the JavaScript library. Providing this option, developers are able to create abstractions for low-level interaction and animation, advanced effects and high-level, theme-able widgets. This contributes to the creation of powerful and dynamic web pages.

Microsoft and Nokia have announced plans to bundle jQuery on their platforms. Microsoft adopting it initially within Visual Studio for use within Microsoft's ASP.NET AJAX framework and ASP.NET MVC Framework whilst Nokia has integrated it into their Web Run-Time widget development platform.

The Seaside framework provides full integration of jQuery allowing to write web applications entirely in Smalltalk.