Thrust v1.2 Released

March 23rd, 2010

Version 1.2 of Thrust, an open-source template library for developing CUDA applications, has been released. Modeled after the C++ Standard Template Library (STL), Thrust brings a familiar abstraction layer to the realm of GPU computing. This version adds several new features, including:

The Thrust web page provides a quick-start guide, online documentation, many examples and introductory slides. Thrust is open-source software distributed under the OSI-approved Apache License v2.0.

Libra SDK: C/C++ for both the CPU and GPU

June 24th, 2009

GPU Systems has announced the Libra SDK, a robustly equipped C/C++ developer kit for fast and easy cross CPU-GPU access suited for scientific computations. The Libra 1.1 SDK includes a C/C++ Matlab-style API, sample programs and documentation. A downloadable trial version of Libra is available from the GPU Systems website, and a Libra demo presentation is also available.

New PGI 9.0 Compilers Simplify x64+GPU Programming

June 24th, 2009

Yesterday The Portland Group announced the release of version 9.0 of its Fortran and C compilers with support for GPUs and x64 multi-core CPUs.  An introduction to PGI Accelerator Fortran and C programming is available online, as is the PGI Accelerator v1.0 specification. Evaluation copies of the new PGI 9.0 compilers are available from The Portland Group web site. Registration is required.

From the press release:

The use of Graphics Processing Units (GPUs) as general purpose accelerators has been a growing trend in high-performance computing (HPC). Until now, use of GPUs from Fortran applications has been extremely limited. Developers targeting GPU accelerators have had to program in C at a detailed level using sequences of function calls to manage movement of data between the x64 host and GPU, and to offload computations from the host to the GPU. The PGI Accelerator Fortran and C compilers automatically analyze whole program structure and data, split portions of an application between a multi-core x64 CPU and a GPU as specified by user directives, and define and generate a mapping of loops to automatically use the parallel cores, hardware threading capabilities and SIMD vector capabilities of modern GPUs.

Read the rest of this entry »

Thrust: a Template Library for CUDA Applications

May 31st, 2009

Thrust is an open-source template library for data parallel CUDA applications featuring an interface similar to the C++ Standard Template Library (STL). Thrust provides a flexible high-level interface for GPU programming that greatly enhances developer productivity while remaining high performance. Note that Thrust supersedes Komrade, the initial release of the library, and all future development will proceed under this title.

Thrust is open source under the Apache 2.0 license and available now at http://thrust.googlecode.com. Download Thrust and check out the Thrust tutorial to get started.

The thrust::host_vector and thrust::device_vector containers simplify memory management and transfers between host and device. Thrust provides efficient algorithms for:

  • sorting – thrust::sort and thrust::sort_by_key
  • transformations – thrust::transform
  • reductions – thrust::reduce and thrust::transform_reduce
  • scans – thrust::inclusive_scan and thrust::transform_inclusive_scan
  • And many more!

Read the rest of this entry »