You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Error checking fix
-Some CUDA runtime errors would not be caught
-Was not checking cudaGetLastError() after launching kernel
-CudaException was defined in two different places, and the exception being thrown was a different type from the one being caught
Fix build break
-Build was breaking on Linux due to conflict between uint64_t and unsigned long long. Removed
use of unsigned long long and use uint64_t from now on for 64-bit values.
CPU Usage
-CPU usage was 100% while running kernel. This is due to the default behavior of CUDA. Enabling the cudaDeviceScheduleBlockingSync flag allows CUDA to yield it's CPU time while waiting for the kernel, bringing the CPU usage to near 0%.
Bigger bloom filters, logging
-Handle arbitrarily large bloom filters up to 2^64 bits.. Previously was limited to bloom filters of size 2^32 bits.
-Added Logger class which can log info/errors/debug messages. Currently only writes to stdout
-Added class for managing bloom filter
-Added class for managing results list, whcih works as a single global list which any GPU thread can add to and can be read by the host
Dynamic bloom filter
-Dynamically resize the bloom filter to accomodate arbitrarily large address lists
-Read the target file directly into KeyFinder so it does not need to be kept in memory in the caller
-Display GPU memory usage in status
-Display GPU name in status
-Display number of targets in status
Bug fix
-When searching a large number of addresses, the bloom filter could have too many false positives, which makes the results buffer overflow. Increasing the bloom filter size to 2^24 bits until a dynamic solution is in place.