GPU-Accelerated Cuckoo Filter
Loading...
Searching...
No Matches
Classes | Namespaces | Enumerations | Functions
CuckooFilter.cuh File Reference
#include <thrust/device_vector.h>
#include <cmath>
#include <cstdint>
#include <ctime>
#include <cub/cub.cuh>
#include <cuda/std/atomic>
#include <cuda/std/cstddef>
#include <cuda/std/cstdint>
#include <iostream>
#include <vector>
#include "bucket_policies.cuh"
#include "hashutil.cuh"
#include "helpers.cuh"

Go to the source code of this file.

Classes

struct  cuckoogpu::Config< T, bitsPerTag_, maxEvictions_, blockSize_, bucketSize_, AltBucketPolicy_, evictionPolicy_, WordType_ >
 Configuration structure for the Cuckoo Filter. More...
 
struct  cuckoogpu::Filter< Config >
 A CUDA-accelerated Cuckoo Filter implementation. More...
 
struct  cuckoogpu::Filter< Config >::PackedTag
 This is used by the sorted insert kernel to store the fingerprint and primary bucket index in a compact format that allows you to sort them directly since the bucket index lives in the upper bits. More...
 
struct  cuckoogpu::Filter< Config >::Bucket
 Bucket structure that holds the fingerprint and tags for a given bucket. More...
 

Namespaces

namespace  cuckoogpu
 
namespace  cuckoogpu::detail
 

Enumerations

enum class  cuckoogpu::EvictionPolicy { cuckoogpu::BFS , cuckoogpu::DFS }
 Eviction policy for the Cuckoo Filter. More...
 

Functions

template<typename Config >
__global__ void cuckoogpu::detail::insertKernel (const typename Config::KeyType *keys, bool *output, size_t n, Filter< Config > *filter, uint32_t *evictionAttempts)
 Kernel for inserting keys into the filter.
 
template<typename Config >
__global__ void cuckoogpu::detail::insertKernelSorted (const typename Filter< Config >::PackedTagType *packedTags, bool *output, size_t n, Filter< Config > *filter, uint32_t *evictionAttempts)
 Kernel for inserting pre-sorted keys into the filter.
 
template<typename Config >
__global__ void cuckoogpu::detail::computePackedTagsKernel (const typename Config::KeyType *keys, typename Filter< Config >::PackedTagType *packedTags, size_t n, size_t numBuckets)
 Kernel for computing packed tags for sorting.
 
template<typename Config >
__global__ void cuckoogpu::detail::containsKernel (const typename Config::KeyType *keys, bool *output, size_t n, Filter< Config > *filter)
 Kernel for checking existence of keys.
 
template<typename Config >
__global__ void cuckoogpu::detail::deleteKernel (const typename Config::KeyType *keys, bool *output, size_t n, Filter< Config > *filter)
 Kernel for deleting keys.