Class DSFM_S_Refine

Inheritance Relationships

Base Types

Class Documentation

class DSFM_S_Refine : public Refine, public IRefineStrategy

DSFM-S 单桶变体:使用全局统一收益桶进行节点移动选择。

Public Functions

inline DSFM_S_Refine(int max_hop, int large_net_threshold, double penalty, vector<vector<int>> &cut_weights, const fpga &fpgas, const TimingRefineConfig &timing_cfg, int max_move, int max_neg_move)
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<bool> &visited_vertices_flag, vector<NetPartition> &partition)
Gain pickMove_DSFM(GlobalMoveBucket &buckets, const graph &finest, const vector<VectorXi> &occupied_resources, vector<Gain> &violating)
void acceptMove_DSFM(const Gain &gain_cell, GlobalMoveBucket &buckets, vector<Gain> &moves_trace, double &total_delta_gain, vector<bool> &visited_vertices_flag, const graph &finest, vector<int> &parts, vector<VectorXi> &occupied_resources, vector<NetPartition> &partition, vector<Gain> &violating)

Private Members

int max_move
int max_neg_move