类 faiss::gpu::GpuIcmEncoder

class GpuIcmEncoder : public faiss::lsq::IcmEncoder

在 GPU 上执行 LSQ 编码。

将输入向量拆分到不同的设备,并调用 IcmEncoderImpl::encode 对它们进行编码

公共函数

GpuIcmEncoder(const LocalSearchQuantizer *lsq, const std::vector<GpuResourcesProvider*> &provs, const std::vector<int> &devices)
~GpuIcmEncoder()
GpuIcmEncoder(const GpuIcmEncoder&) = delete
GpuIcmEncoder &operator=(const GpuIcmEncoder&) = delete
virtual void set_binary_term() override
virtual void encode(int32_t *codes, const float *x, std::mt19937 &gen, size_t n, size_t ils_iters) const override

给定码本编码向量

参数:
  • codes – 输出代码,大小为 n * M

  • x – 要编码的向量,大小为 n * d

  • gen – 随机数生成器

  • n – 向量的数量

  • ils_iters – 迭代局部搜索的迭代次数

公共成员

std::vector<float> binaries
bool verbose
const LocalSearchQuantizer *lsq

私有成员

std::unique_ptr<IcmEncoderShards> shards