Skip to content

Commit a7a2090

Browse files
authored
Merge pull request #2239 from verilog-to-routing/RLplace_move_mismatch
RLplace move mismatch
2 parents 6826caf + 62cb744 commit a7a2090

File tree

2 files changed

+21
-16
lines changed

2 files changed

+21
-16
lines changed

vpr/src/place/move_utils.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,13 @@ enum e_move_result {
2222
enum class e_move_type {
2323
UNIFORM,
2424
MEDIAN,
25-
W_CENTROID,
2625
CENTROID,
26+
W_CENTROID,
2727
W_MEDIAN,
2828
CRIT_UNIFORM,
2929
FEASIBLE_REGION,
30-
MANUAL_MOVE,
30+
NUMBER_OF_AUTO_MOVES,
31+
MANUAL_MOVE = NUMBER_OF_AUTO_MOVES
3132
};
3233

3334
enum class e_create_move {

vpr/src/place/simpleRL_move_generator.cpp

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,25 +15,29 @@ static float scaled_clipped_exp(float x) { return std::exp(std::min(1000000 * x,
1515
* *
1616
* */
1717
SimpleRLMoveGenerator::SimpleRLMoveGenerator(std::unique_ptr<SoftmaxAgent>& agent) {
18-
avail_moves.emplace_back(std::make_unique<UniformMoveGenerator>());
19-
avail_moves.emplace_back(std::make_unique<MedianMoveGenerator>());
20-
avail_moves.emplace_back(std::make_unique<CentroidMoveGenerator>());
21-
avail_moves.emplace_back(std::make_unique<WeightedCentroidMoveGenerator>());
22-
avail_moves.emplace_back(std::make_unique<WeightedMedianMoveGenerator>());
23-
avail_moves.emplace_back(std::make_unique<CriticalUniformMoveGenerator>());
24-
avail_moves.emplace_back(std::make_unique<FeasibleRegionMoveGenerator>());
18+
avail_moves.resize((int)e_move_type::NUMBER_OF_AUTO_MOVES);
19+
20+
avail_moves[(int)e_move_type::UNIFORM] = std::make_unique<UniformMoveGenerator>();
21+
avail_moves[(int)e_move_type::MEDIAN] = std::make_unique<MedianMoveGenerator>();
22+
avail_moves[(int)e_move_type::CENTROID] = std::make_unique<CentroidMoveGenerator>();
23+
avail_moves[(int)e_move_type::W_CENTROID] = std::make_unique<WeightedCentroidMoveGenerator>();
24+
avail_moves[(int)e_move_type::W_MEDIAN] = std::make_unique<WeightedMedianMoveGenerator>();
25+
avail_moves[(int)e_move_type::CRIT_UNIFORM] = std::make_unique<CriticalUniformMoveGenerator>();
26+
avail_moves[(int)e_move_type::FEASIBLE_REGION] = std::make_unique<FeasibleRegionMoveGenerator>();
2527

2628
karmed_bandit_agent = std::move(agent);
2729
}
2830

2931
SimpleRLMoveGenerator::SimpleRLMoveGenerator(std::unique_ptr<EpsilonGreedyAgent>& agent) {
30-
avail_moves.emplace_back(std::make_unique<UniformMoveGenerator>());
31-
avail_moves.emplace_back(std::make_unique<MedianMoveGenerator>());
32-
avail_moves.emplace_back(std::make_unique<CentroidMoveGenerator>());
33-
avail_moves.emplace_back(std::make_unique<WeightedCentroidMoveGenerator>());
34-
avail_moves.emplace_back(std::make_unique<WeightedMedianMoveGenerator>());
35-
avail_moves.emplace_back(std::make_unique<CriticalUniformMoveGenerator>());
36-
avail_moves.emplace_back(std::make_unique<FeasibleRegionMoveGenerator>());
32+
avail_moves.resize((int)e_move_type::NUMBER_OF_AUTO_MOVES);
33+
34+
avail_moves[(int)e_move_type::UNIFORM] = std::make_unique<UniformMoveGenerator>();
35+
avail_moves[(int)e_move_type::MEDIAN] = std::make_unique<MedianMoveGenerator>();
36+
avail_moves[(int)e_move_type::CENTROID] = std::make_unique<CentroidMoveGenerator>();
37+
avail_moves[(int)e_move_type::W_CENTROID] = std::make_unique<WeightedCentroidMoveGenerator>();
38+
avail_moves[(int)e_move_type::W_MEDIAN] = std::make_unique<WeightedMedianMoveGenerator>();
39+
avail_moves[(int)e_move_type::CRIT_UNIFORM] = std::make_unique<CriticalUniformMoveGenerator>();
40+
avail_moves[(int)e_move_type::FEASIBLE_REGION] = std::make_unique<FeasibleRegionMoveGenerator>();
3741

3842
karmed_bandit_agent = std::move(agent);
3943
}

0 commit comments

Comments
 (0)