OEFastFPDatabaseMemoryTypeΒΆ

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

See also

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:

  • CUDA-enabled device of compute capability (cc) 3.0 or above.
  • 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