Class OldRefine

Inheritance Relationships

Base Types

Class Documentation

class OldRefine : public Refine, public IRefineStrategy

OldRefine 策略:支持固定约束与并行时序评估的随机细化。

Public Functions

inline OldRefine(int max_hop, int large_net_threshold, double penalty, vector<vector<int>> &cut_weights, const fpga &fpgas, const TimingRefineConfig &timing_cfg, bool has_fix, bool has_timing = false, bool enable_parallel_refine = false, int thread_order = 0, int current_level = 0, int multilevel_id = 0)
virtual const char *name() const override
virtual double run(RefinePassContext &context) override

执行一次完整的单趟细化遍历,返回累计收益。

double refinement(const graph &finest, vector<int> &parts, vector<VectorXi> &occupied_resources, vector<NetPartition> &partition, int seed)
double parallelRefinement(const graph &finest, vector<int> &parts, vector<VectorXi> &occupied_resources, vector<NetPartition> &partition, int seed)
void updateFullTimingByCut(const graph &finest, vector<int> &parts)

Private Members

bool has_fix

是否存在固定归属约束。

bool enable_parallel_refine_

是否启用并行细化。

std::mt19937 gen_

随机数生成器。