Thrust for CUDA
Thrust for CUDA
Monday, 11 October 2010

If you are interested in using the GPU for general purpose computation, i.e. GGPU, then Thrust is a library that can save you a huge amount of effort.

Banner

 

Thrust  is an open-source template library for CUDA applications and the latest version 1.3 has just been  released.

thrust

Modeled after the C++ Standard Template Library (STL), Thrust brings a familiar abstraction layer to GPU computing.

Version 1.3 adds several new features, including:

  • a state-of-the-art sorting implementation,
  • performance improvements to stream compaction and reduction
  • robust error reporting and failure detection
  • support for CUDA 3.2 and gf104-based GPUs
  • search algorithm

To give you some idea of how easy Thrust is to use consider the following short program that generates random numbers and then sorts them using the GPU: (Note: "host" means CPU and "device" means GPU)

int main(void)
{
// generate 32M random numbers on
//the host
 thrust::host_vector<int> h_vec(1 << 24);
 thrust::generate(h_vec.begin(),
                    h_vec.end(), rand);
// transfer data to the device
 thrust::device_vector<int> d_vec=h_vec;
// sort data on the device
// (846M keys per second on
//               GeForce GTX 480)
 thrust::sort(d_vec.begin(), d_vec.end());
// transfer data back to host
 thrust::copy(d_vec.begin(),
            d_vec.end(), h_vec.begin());
 return 0;
}

Notice the way that Thrust methods can be used on both the host and the device and how the whole messy business of parallelising algorithms is hidden from the programmer.

To get started first download Thrust v1.3 and then follow the online quick-start guide. Refer to the online documentation for a complete list of features. Many examples and a set of introductory slides are also available.

Thrust is open-source software distributed under the Apache License v2.0.

Other relevant articles:

GPU Gems Volume 1

Graphics Accelerators

Bitmap Effects

GPGPU optimisation

Banner


Margaret Hamilton Pioneering Software Engineer
20/08/2016

Margaret Hamilton, who coined the term "software engineer" and was lead developer for the team that wrote the programs that landed men on the moon, turned 80 years old last week.



Intel Euclid - New Horizons For RealSense
22/08/2016

Intel demoed a prototype of Euclid at last week's Intel Developer Forum. This is a compact computer combined with RealSense 3D depth sensing technology that can serve as the brain and eyes of a robot. [ ... ]


More News

<ASIN:0321228324>

<ASIN:0321335597>

<ASIN:0321515269>

Last Updated ( Monday, 11 October 2010 )
 
 

   
Banner
RSS feed of news items only
I Programmer News
Copyright © 2016 i-programmer.info. All Rights Reserved.
Joomla! is Free Software released under the GNU/GPL License.