Description
Currently, when computing RadioMaps for the same scene with different precoding vectors, RadioMapSolver.solve() must be called multiple times. Since the underlying ray tracing (finding paths between transmitters and the measurement surface) is identical across these calls, repeating the entire solver process is computationally inefficient.
I have observed that precoding vectors are transformed into array_w via RadioMapSolver._synthetic_array_weighting() and applied in RadioMap.add_paths(). This suggests that we can decouple the path-finding process from the precoding application, allowing a single solve() execution to produce multiple RadioMaps for different precoding configurations.
Proposed Changes
Modify RadioMapSolver to accept a batch or list of precoding vectors.
Update add_paths to handle vectorized or multi-set weights.
(Optional) Introduce a method to re-apply new weights to an existing set of traced paths without re-running the solver.
Benefits
Performance: Significant speedup for codebooks search or precoding optimization tasks.
Efficiency: Reduces GPU memory overhead and redundant computations in static scenes.
I have a working implementation and would like to know if the maintainers consider this a valuable addition. If so, I am happy to submit a PR!
Description
Currently, when computing RadioMaps for the same scene with different precoding vectors,
RadioMapSolver.solve()must be called multiple times. Since the underlying ray tracing (finding paths between transmitters and the measurement surface) is identical across these calls, repeating the entire solver process is computationally inefficient.I have observed that precoding vectors are transformed into array_w via
RadioMapSolver._synthetic_array_weighting()and applied inRadioMap.add_paths(). This suggests that we can decouple the path-finding process from the precoding application, allowing a single solve() execution to produce multiple RadioMaps for different precoding configurations.Proposed Changes
Modify
RadioMapSolverto accept a batch or list of precoding vectors.Update add_paths to handle vectorized or multi-set weights.
(Optional) Introduce a method to re-apply new weights to an existing set of traced paths without re-running the solver.
Benefits
Performance: Significant speedup for codebooks search or precoding optimization tasks.
Efficiency: Reduces GPU memory overhead and redundant computations in static scenes.
I have a working implementation and would like to know if the maintainers consider this a valuable addition. If so, I am happy to submit a PR!