Posts Tagged ‘GPU’

01 – What is CUDA.NET

Thursday, September 16th, 2010

CUDA.NET is a library that provides access to GPU computing resources on top (using) CUDA API by NVIDIA.

This article is divided into the following topics:

  • What is a GPU?
  • Overview of CUDA
  • Introduction to CUDA.NET
  • Typical Applications
  • Supported Platforms

What is a GPU?

GPU stands for Graphics Processing Unit.
It is a special, dedicated hardware usually used for graphics (2D, 3D, gaming) but now also employed to computing purposes as well.

GPU is used as a general term to represent a hardware solution and there are various vendors worldwide manufacturing them – although there are many types of GPUs only specific models or generations can be used for computing or with CUDA.

There are benefits for using the GPU as a computing resource – It provides strong computing power compared to other equivalents such as CPU, DSP or other dedicated chips with somewhat ease of programming.
For example, a reasonable GPU with 128 cores can provide about 500 GFLOPS (500 billion floating point operations per second), whereas a 4 core CPU can provide about 90 GFLOPS. The numbers can vary based on multiple parameters, but by means of raw computing power, these numbers provide a rough estimate for the potential in using the GPU.

Overview of CUDA

CUDA stands for Compute Unified Device Architecture and is a software environment created by NVIDIA to provide developers with specific API to utilize the GPU for computing directly, rather than doing graphics (the main purpose of GPUs).

This software environment provides API to enumerate the GPUs available in a system as computational devices, initialize them, allocate memory for each and execute code, actually full management aspects of these computing resources accessible on a computer.

CUDA itself is built with C, provides defined API and further libraries to assist developers, such as FFT and BLAS to perform Fourier transforms or linear algebra calculation, accelerated, on the GPU.

For further, deeper reading of these topics (GPU / CUDA), please follow this link: CUDA.

Introduction to CUDA.NET

As outlined above, the environments available today to GPU developers are mostly based on C and meant for native applications. However there is a need to have the same capabilities from managed (.NET/Java) applications. This is where CUDA.NET enters.

CUDA.NET is mostly an interfacing library, providing the same set of API as CUDA for low-level access, using the same terms and concepts. It is also a pure .NET implementation so one can use it from any .NET language or platform that supports CUDA and .NET (Linux, MacOSX etc.).

In addition to a low-level interface, CUDA.NET provides an object-oriented abstraction over CUDA, using the same objects and terms, but with simplifed access for .NET based applications. The same objects can be shared between both environments, but developers would find the OO interface much more friendly and intuitive for use.

The same set of libraries covered by CUDA is also accessible from CUDA.NET – FFT, BLAS and upcoming support for new libraries.

Typical Applications

The GPU can be beneficial for applications where computing takes a significant amount of time or is a bottleneck, as well when looking to free other resources and offload computations to the GPU (as it doesn’t affect the system while working in the background).

Fields where a sort of accelerated computing is needs, or processing of multiple elements can benefit the GPU.
To name a few:

  • Image/Video processing (filters, encoding, decoding)
  • Signal processing
  • Finance
  • Oil & gas (Geophysics)
  • Medical imaging
  • Scientific computations, simulations and research

Supported Platforms

As mentioned earlier, CUDA.NET is based on a pure .NET implementation.

It can be used on (assuming the OS supports CUDA): 

  • Windows
    • For desktops/embedded: XP and above
    • For servers: 2003 and above
  • Linux and other UNIX variants
  • Macintosh (MacOSX)

The library is fully compatible with 32 and 64 bit systems of all kinds mentioned above.

00 – Preface

Tuesday, August 3rd, 2010

The new CUDA.NET Tutorials category was created to collect and manage resources and materials for developers starting to work and develop with CUDA.NET library for various platforms.

The usual composition will be of articles on specific topics and gradually increasing complexity.

This post will include an additional Table of Contents for published articles as we go.

Table of Contents

  1. Preface

 

For any question or comment, please contact us through our email address: support (at) hoopoe-cloud.com.

Vicodeo™ – Accelerated Video Decoding Library

Tuesday, May 11th, 2010

Dear all,

We are glad to introduce a new library for video decoding, Vicodeo™, featuring accelerated performance for faster than real-time decoding of H.264, MPEG-2 (and more) video streams – in managed environments (.NET / Java).

Video processing nowadays has become a computing intensive task. Being able to accelerate decoding and various processing tasks, opens the door for many types of applications and usage of video in life, from: high-quality films, security/surveillance cameras, live events, video conversations over the web and much more.

Our library provides many capabilities beyond real-time (+) decoding of 1080p (Full HD) streams:

  • Codec support: H.264, MPEG-2, VC-1 and more
  • Color space conversion from YUV 4:2:0 to RGB (accelerated)
  • Integrated parser for elementary/transport streams and video packets
  • Simple integration with DirectX or OpenGL
  • Faster than real-time decoding for 1080p even on low-end platforms
  • Optional immediate decoding of frames, without buffering
  • And more!

For more information: Video Decoding

GECCO 2010 – GPU Competition

Friday, January 15th, 2010

Dear all,

GECCO (GPUs for Genetic and Evolutionary Computation Conference) will take part this year between July 7th-11th, at Portland, Oregon, USA.

Rules and competition guidelines are published on the website provided by the link below.
Registration is open until June 4th, 2010.

Link to the competition GECCO 2010.

Thanks to Dr. Simon Harding, Memorial University, Canada, for the notes and update.

Encodeo™ – Video Transcoding on Demand

Monday, December 28th, 2009

We are glad to announce a new service added to Hoopoe™ for video transcoding on demand.

Using the service allows users to transcode (convert) existing video files from various formats to the recent H.264 standard, at unmatched quality, speed and price.

Using GPU acceleration, we can convert HD movies and beyond at least x10 faster compared to existing equivalents.

Encodeo™ is not just a video transcoding service – it is possible to define advanced parameters for the transcoding process, such as:

  • Resolution
  • Bitrate
  • Filters / effect to apply on source video
  • and more…

If you are interested to hear more about the service and potential to use it, please contact us at: support@hoopoe-cloud.com.

For more information:
http://www.hoopoe-cloud.com/Apps/Encodeo.aspx

OpenCL.NET 1.0.48 Released

Monday, December 7th, 2009

Hello,

We are happy to announce the availability of the so long waiting OpenCL.NET 1.0.48 library.

This version aligns with OpenCL 1.0.48 standard, and fully conforms with latest NVIDIA drivers for OpenCL (and as well on supported platforms).

In brief, this release of the standard added few API functions and modified some, to truly allow heterogeneous computing on a single system. An application can query for the existence of multiple computing devices on the system, also by different vendors (recognize the CPU and a GPU as compute resources) regardless of the vendor. Such that consuming different computing resources can be transparent.

For further details about standard features and changes please consult Khronos website.

For OpenCL.NET page and download, click here.

As always, you are invited to contact us at: support@hoopoe-cloud.com.

World Cloud Computing Summit 2009

Monday, November 30th, 2009

The 2nd annual cloud computing summit is about to take place in Shfayim, Israel, between December 2-3, 2009.

Following last year success, the event will cover recent developments and progress in cloud technologies. Presenting with top-of-the-line companies active in this field, including (partial list): Amazon, Google, eBay, IBM, HP, Sun, RedHat and more.

Additional “hands-on” labs and workshops are offered during the event for participants that would like to learn more about cloud technologies and integration possibilities.

We are also presenting Hoopoe at the summit, for GPU Cloud Computing, and providing a workshop on GPU Computing in general and Hoopoe as well.

This event ends 2009 and symbolically the last decade, marking cloud computing as a major development that we are about to see more and more in the next years.

You are invited to join us during the event.
Agenda
Registration

Annoucing Hoopoe – Cloud Services for GPU Computing

Sunday, January 18th, 2009

We are happy to introduce to you “Hoopoe”, a cloud solution for GPU computing.

You may have all expected it to be available sometime, and indeed it is.

Hoopoe provides a web service interface to communicate with. In the near future it will also provide machine level access to run specific applications like with regular CPU based clouds.

Partial feature list of the system:

  • CUDA Support
  • Executing CUDA kernels, FFT and BLAS routines
  • OpenCL Support
  • Executing OpenCL kernels
  • Fully secure – Check out

Take a further look at: http://www.hoopoe-cloud.com. The system will be open for alpha testing very soon so you are invited to register.