|
TraceMaker
C++ API of the engine
|
Cost-to-go fields for the router (design doc 05 §5.2, doc 07 §2): exact shortest-path distances from a set of target lattice points over a window, on an octilinear multi-layer lattice with through-via moves. More...
Go to the source code of this file.
Classes | |
| struct | tmk::gpu::FieldProblem |
Namespaces | |
| namespace | tmk |
| namespace | tmk::gpu |
Functions | |
| int | tmk::gpu::field_cpu (const FieldProblem &p, std::vector< std::int32_t > &out) |
| CPU reference. out is resized to layers*h*w. Returns the number of sweep rounds. | |
| GpuStatus | tmk::gpu::field_gpu (int device_index, const FieldProblem &p, std::vector< std::int32_t > &out) |
| Compiled GPU backend; on failure (no device, no memory) returns !ok and leaves out empty. | |
Variables | |
| constexpr std::int32_t | tmk::gpu::kFieldInf = std::numeric_limits<std::int32_t>::max() / 4 |
Cost-to-go fields for the router (design doc 05 §5.2, doc 07 §2): exact shortest-path distances from a set of target lattice points over a window, on an octilinear multi-layer lattice with through-via moves.
Computed by alternating line sweeps (row, column and both diagonals, each in both directions) plus via relaxation, repeated to a fixpoint (GAMER, Lin et al., TCAD 2023). The fixpoint is the unique shortest-path distance, so the CPU reference and the GPU kernel produce identical results whatever the sweep order.
Definition in file field.hpp.