 {
     log_info(stderr, "  %s test\n", equal<system_tag,device_tag>() ? "gpu" : "cpu" );
 
-    nvbio::vector<system_tag,uint32> filter( size );
+    const uint64 n_words = util::divide_ri( size, uint64(32) );
+    nvbio::vector<system_tag,uint32> filter( n_words );
     nvbio::vector<system_tag,uint8>  temp(N);
 
     Timer timer;

    typedef uint64 argument_type;
    typedef uint8  return_type;

    bloom_filter_lookup(const uint64 _size, const uint32* _words) : filter( FILTER_K, _size * 32, (const uint4*)_words ) {}

    NVBIO_FORCEINLINE NVBIO_HOST_DEVICE
    uint8 operator() (const uint64 i) const

    typedef uint64 argument_type;
    typedef uint8  return_type;

    bloom_filter_inserter(const uint64 _size, uint32* _words) : filter( FILTER_K, _size, (uint64_2*)_words ) {}

    NVBIO_FORCEINLINE NVBIO_HOST_DEVICE
    void operator() (const uint64 i)
