Skip to content

Commit 155efc6

Browse files
add GridBlock::zero_initialize() method
1 parent fbd992d commit 155efc6

File tree

4 files changed

+32
-26
lines changed

4 files changed

+32
-26
lines changed

vpr/src/base/grid_block.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,11 @@ class GridBlock {
7070
grid_blocks_.clear();
7171
}
7272

73+
/**
74+
* @brief Initialize usage to 0 and blockID to INVALID for all grid block locations
75+
*/
76+
void zero_initialize();
77+
7378
private:
7479
vtr::NdMatrix<t_grid_blocks, 3> grid_blocks_;
7580
};

vpr/src/grid_block.cpp

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
2+
#include "grid_block.h"
3+
4+
#include "globals.h"
5+
6+
void GridBlock::zero_initialize() {
7+
auto& device_ctx = g_vpr_ctx.device();
8+
9+
/* Initialize all occupancy to zero. */
10+
for (int layer_num = 0; layer_num < (int)device_ctx.grid.get_num_layers(); layer_num++) {
11+
for (int i = 0; i < (int)device_ctx.grid.width(); i++) {
12+
for (int j = 0; j < (int)device_ctx.grid.height(); j++) {
13+
set_usage({i, j, layer_num}, 0);
14+
auto tile = device_ctx.grid.get_physical_type({i, j, layer_num});
15+
16+
for (const auto& sub_tile : tile->sub_tiles) {
17+
auto capacity = sub_tile.capacity;
18+
19+
for (int k = 0; k < capacity.total(); k++) {
20+
set_block_at_location({i, j, k + capacity.low, layer_num}, ClusterBlockId::INVALID());
21+
}
22+
}
23+
}
24+
}
25+
}
26+
}

vpr/src/place/place_util.cpp

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,7 @@ void load_grid_blocks_from_block_locs(GridBlock& grid_blocks,
278278
auto& cluster_ctx = g_vpr_ctx.clustering();
279279
auto& device_ctx = g_vpr_ctx.device();
280280

281-
zero_initialize_grid_blocks(grid_blocks);
281+
grid_blocks.zero_initialize();
282282

283283
for (ClusterBlockId blk_id : cluster_ctx.clb_nlist.blocks()) {
284284
t_pl_loc location = block_locs[blk_id].loc;
@@ -292,28 +292,6 @@ void load_grid_blocks_from_block_locs(GridBlock& grid_blocks,
292292
}
293293
}
294294

295-
void zero_initialize_grid_blocks(GridBlock& grid_blocks) {
296-
auto& device_ctx = g_vpr_ctx.device();
297-
298-
/* Initialize all occupancy to zero. */
299-
for (int layer_num = 0; layer_num < (int)device_ctx.grid.get_num_layers(); layer_num++) {
300-
for (int i = 0; i < (int)device_ctx.grid.width(); i++) {
301-
for (int j = 0; j < (int)device_ctx.grid.height(); j++) {
302-
grid_blocks.set_usage({i, j, layer_num}, 0);
303-
auto tile = device_ctx.grid.get_physical_type({i, j, layer_num});
304-
305-
for (const auto& sub_tile : tile->sub_tiles) {
306-
auto capacity = sub_tile.capacity;
307-
308-
for (int k = 0; k < capacity.total(); k++) {
309-
grid_blocks.set_block_at_location({i, j, k + capacity.low, layer_num}, ClusterBlockId::INVALID());
310-
}
311-
}
312-
}
313-
}
314-
}
315-
}
316-
317295
void alloc_and_load_legal_placement_locations(std::vector<std::vector<std::vector<t_pl_loc>>>& legal_pos) {
318296
auto& device_ctx = g_vpr_ctx.device();
319297

vpr/src/place/place_util.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -336,9 +336,6 @@ int get_initial_move_lim(const t_placer_opts& placer_opts, const t_annealing_sch
336336
*/
337337
double get_std_dev(int n, double sum_x_squared, double av_x);
338338

339-
///@brief Initialize usage to 0 and blockID to EMPTY_BLOCK_ID for all place_ctx.grid_block locations
340-
void zero_initialize_grid_blocks(GridBlock& grid_blocks);
341-
342339
///@brief a utility to calculate grid_blocks given the updated block_locs (used in restore_checkpoint)
343340
void load_grid_blocks_from_block_locs(GridBlock& grid_blocks,
344341
const vtr::vector_map<ClusterBlockId, t_block_loc>& block_locs);

0 commit comments

Comments
 (0)