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