Class StrategyRunner¶
Defined in File StrategyRunner.h
Class Documentation¶
-
class StrategyRunner¶
策略执行器:不关心具体策略类型,负责在框架层驱动策略收敛。
Public Static Functions
-
static double runStrategyLoop(IRefineStrategy &strategy, const RefinementConfig &config, const RefinementSession &session, const graph &finest, vector<int> &parts, vector<VectorXi> &occupied_resources, vector<NetPartition> &partition, vector<vector<int>> &cut_weights, int thread_order, int cur_level, int multilevel_id, const fpga &fpgas)¶
执行单次策略的多趟 Pass 循环,直到无正增益或达到迭代上限。
- Parameters:
strategy – [in] 策略对象实例(FM、PM、DSFM 等)。
config – [in] 细化配置(迭代次数、收敛阈值等)。
session – [in] 本次细化迭代的运行时会话。
finest – [in] 当前超图。
parts – [inout] 节点分区归属,随策略推进更新。
occupied_resources – [inout] 各分区资源占用。
partition – [inout] 超边分区快照。
cut_weights – [inout] 割边权重矩阵。
thread_order – [in] 线程/调度顺序编号。
cur_level – [in] 当前 V-Cycle 层级。
multilevel_id – [in] 多层划分实例序号。
fpgas – [in] FPGA 平台约束。
- Returns:
累计总收益值。
-
static double refinementNew(const RefinementConfig &config, const RefinementSession &session, const graph &finest, vector<int> &parts, const fpga &fpgas, vector<VectorXi> &occupied_resources, int thread_order, int remaining_solutions, HSFullTiming::HSPartitionFlow &pFlow, float &worst_slack, bool decreaseMaxHopCntPriority = true)¶
总控细化接口:创建策略实例并多次调用 runStrategyLoop。
-
static double runStrategyLoop(IRefineStrategy &strategy, const RefinementConfig &config, const RefinementSession &session, const graph &finest, vector<int> &parts, vector<VectorXi> &occupied_resources, vector<NetPartition> &partition, vector<vector<int>> &cut_weights, int thread_order, int cur_level, int multilevel_id, const fpga &fpgas)¶