The CUDPP (CUDA Data Parallel Primitives) library provides the essential primitives necessary for any parallel data processing on the GPU. This includes functions to scan, compact and sort data. Source code of CUDPP can be downloaded from here and compiled using Visual Studio. Beware that the compilation can take quite a while.
A version of CUDPP is shipped by NVIDIA inside its GPU Computing SDK. Using this version of CUDPP with your Visual Studio project is pretty easy:
cudpp.h in source code that uses CUDPP.
Add the CUDPP include directory to the Additional Include Directories of your CUDA Build Rule. Typically this directory is
cudpp64.lib. This library file can be provided in Linker → Input → Additional Dependencies
Add the CUDPP library directory to Linker → General → Additional Library Directories. Typically this directory is
When an executable linked with CUDPP is executed, it looks for a CUDPP DLL file (
cudpp32_32_16.dll for example). This is typically found in the
$(NVSDKCOMPUTE_ROOT)/C/common/bin directory. The GPU Computing SDK adds this directory to the
%PATH% environment variable when it is installed. For some reason, if it is not found in
%PATH%, either add it there or copy the DLL file to the same directory as that of the executable.
Tried with: CUDPP 1.1.1, CUDA 3.2 and Visual Studio 2008