This namespace contains memory type constants representing how fingerprints are stored and searched for in an OEFastFPDatabase object.
- OEFastFPDatabase class
The default memory type is OEFastFPDatabaseMemoryType::MemoryMapped.
If a CUDA-enabled GPU is available, OEFastFPDatabase can take advantage of the device for similarity calculations. When an OEFastFPDatabase is initialized with the OEFastFPDatabaseMemoryType::CUDA type, similarity calculations are performed on the device. Initialization incurs a one-time load penalty, similar to OEFastFPDatabaseMemoryType::InMemory.
- CUDA-enabled device of compute capability (cc) 3.0 or above.
- Fingerprint sizes of multiples of 1024 bits.
At present, multi-GPU support is not available. If there are multiple CUDA devices on the system, the first compatible device detected will be used. To enforce the use of a particular device, set the environment variable CUDA_VISIBLE_DEVICES.
If device memory limits are exceeded or a CUDA-enabled device is not detected this implementation falls back to OEFastFPDatabaseMemoryType::MemoryMapped
When an OEFastFPDatabase is initialized with OEFastFPDatabaseMemoryType::InMemory type the fingerprints are pre-loaded into memory and the similarity search performed in-memory when calling the OEFastFPDatabase::GetSortedScores method.
OEFastFPDatabaseMemoryType::InMemory presents the fastest search at the expense of load time and the search is limited by the size of the memory.
- Example code in Searching fast fingerprint database section