结构体 faiss::TimeoutCallback

struct TimeoutCallback : public faiss::InterruptCallback

公共函数

virtual bool want_interrupt() override
void set_timeout(double timeout_in_seconds)

公共成员

std::chrono::time_point<std::chrono::steady_clock> start
double timeout

公共静态函数

static void reset(double timeout_in_seconds)
static void clear_instance()
static void check()

检查是否

  • 设置了中断回调

  • 如果是这种情况,则回调返回 true,然后抛出一个异常。 不应从多个线程调用。

static bool is_interrupted()

check() 相同,但如果被中断则返回 true,而不是抛出异常。 可以从多个线程调用。

static size_t get_period_hint(size_t flops)

假设每次迭代需要一定数量的 flops,那么检查中断的合理间隔是多少?

公共静态属性

static std::mutex lock
static std::unique_ptr<InterruptCallback> instance