CUDPP  2.2
CUDA Data-Parallel Primitives Library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Classes | Enumerations | Functions
cudpp_hash.h File Reference

Main library header file for CUDPP hash tables. Defines public interface. More...

#include "cudpp.h"
#include "cudpp_config.h"


struct  CUDPPHashTableConfig
 Configuration struct for creating a hash table (CUDPPHashTable()) More...
class  CUDPPHashTableInternal< T >
 Internal structure used to store a generic CUDPP hash table. More...


 Supported types of hash tables. More...


CUDPP_DLL CUDPPResult cudppHashTable (CUDPPHandle cudppHandle, CUDPPHandle *plan, const CUDPPHashTableConfig *config)
 Creates a CUDPP hash table in GPU memory given an input hash table configuration; returns the plan for that hash table. More...
CUDPP_DLL CUDPPResult cudppDestroyHashTable (CUDPPHandle cudppHandle, CUDPPHandle plan)
 Destroys a hash table given its handle. More...
CUDPP_DLL CUDPPResult cudppHashInsert (CUDPPHandle plan, const void *d_keys, const void *d_vals, size_t num)
 Inserts keys and values into a CUDPP hash table. More...
CUDPP_DLL CUDPPResult cudppHashRetrieve (CUDPPHandle plan, const void *d_keys, void *d_vals, size_t num)
 Retrieves values, given keys, from a CUDPP hash table. More...
CUDPP_DLL CUDPPResult cudppMultivalueHashGetValuesSize (CUDPPHandle plan, unsigned int *size)
 Retrieves the size of the values array in a multivalue hash table. More...
CUDPP_DLL CUDPPResult cudppMultivalueHashGetAllValues (CUDPPHandle plan, unsigned int **d_vals)
 Retrieves a pointer to the values array in a multivalue hash table. More...

Detailed Description

Main library header file for CUDPP hash tables. Defines public interface.


The CUDPP public interface is a C-only interface to enable linking with code written in other languages (e.g. C, C++, and Fortran). While the internals of CUDPP are not limited to C (C++ features are used), the public interface is entirely C (thus it is declared "extern C").

Enumeration Type Documentation

Supported types of hash tables.

See Also

Stores a single value per key. Input is expected to be a set of key-value pairs, where the keys are all unique.


Assigns each key a unique identifier and allows O(1) translation between the key and the unique IDs. Input is a set of keys that may, or may not, be repeated.


Can store multiple values for each key. Multiple values for the same key are represented by different key-value pairs in the input.


Invalid hash table; flags error if used.