Bug#671778: non-CUDA context for libthrust-dev

Sylwester Arabas sarabas at igf.fuw.edu.pl
Sun May 6 20:43:46 UTC 2012

Package: libthrust-dev
Version: 1.5.1-1

The description of the current libthrust-dev package in Debian is:
"Thrust - C++ template library for CUDA".

It's quite misleading - as of now the Thrust library is fully usable
without CUDA, e.g. as a template library for implementing parallel 
algorithms using OpenMP.

On the Thrust website (http://code.google.com/p/thrust/) the package is described as:

> Thrust is a parallel algorithms library which resembles the C++ Standard Template Library (STL). Thrust's high-level interface greatly enhances developer productivity while enabling performance portability between GPUs and multicore CPUs. Interoperability with established technologies (such as CUDA, TBB and OpenMP) facilitates integration with existing software. Develop high-performance applications rapidly with Thrust!

The Thrust documentation (http://code.google.com/p/thrust/wiki/DeviceBackends#Additional_Details), mentions also that:

> When using either the OpenMP or TBB systems, nvcc isn't required. In general, nvcc is only required when targeting Thrust at CUDA. For example, we could compile the previous code directly with g++ with this command line...

I'm using the current sid package on a machine without GPU, with gcc's OpenMP, and it works well.

To conclude, here're three suggestions:
- to rephrase the current package description to reflect that Thrust is no-longer a CUDA-specific tool
- to change the type of dependency on nvidia-cuda-toolkit from recommends to suggests
- to move libthrust-dev from contrib to main (suggested in an e-mail by Andreas Beckmann)

HTH, best regards,

More information about the pkg-nvidia-devel mailing list