OEFastFPDatabaseMemoryType¶
This namespace contains memory type constants representing how fingerprints are stored and searched for in an OEFastFPDatabase object.
See also
OEFastFPDatabase class
Default
The default memory type is
OEFastFPDatabaseMemoryType::MemoryMapped
.
CUDA
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
.
Requirements:
Fingerprint sizes of multiples of 1024 bits.
Note
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
.
Note
If device memory limits are exceeded or a CUDA-enabled device is not detected this
implementation falls back to OEFastFPDatabaseMemoryType::MemoryMapped
InMemory
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.
Hint
OEFastFPDatabaseMemoryType::InMemory
presents
the fastest search at the expense of load time and the search is limited by
the size of the memory.
MemoryMapped
When an OEFastFPDatabase is initialized with
OEFastFPDatabaseMemoryType::MemoryMapped
type there is no load time penalty or memory limitation but the
search itself is slower.
See also
Example code in Searching fast fingerprint database section