This namespace contains memory type constants representing how fingerprints are stored and searched for in an OEFastFPDatabase object.

See also


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 exceded or a CUDA-enabled device is not detected this implementation falls back to OEFastFPDatabaseMemoryType.MemoryMapped


The default memory type is 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.


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