tenzr::TorusCostModel¶
Analytic cost model comparing torus and ring all-reduce times.
#include <torus_model.h>
Public Functions¶
| Name | |
|---|---|
| TorusCostModel(TorusDimensions dims, NetworkParameters params) | |
| const TorusDimensions & | Dimensions() const The modelled torus dimensions. |
| const NetworkParameters & | Parameters() const The modelled network parameters. |
| double | PredictTimeSeconds(uint64_t payload_bytes) const |
| double | PredictRingTimeSeconds(uint64_t payload_bytes, double ring_bandwidth =0.0) const |
| double | SpeedupOverRing(uint64_t payload_bytes, double ring_bandwidth =0.0) const |
| std::string | GenerateReport(uint64_t payload_bytes) const |
| TorusDimensions | OptimizeDimensions(int64_t total_nodes) |
Public Functions Documentation¶
function TorusCostModel¶
Parameters:
- dims Torus dimensions.
- params Latency and bandwidth parameters.
Create a cost model for the given torus and network parameters.
function Dimensions¶
The modelled torus dimensions.
function Parameters¶
The modelled network parameters.
function PredictTimeSeconds¶
Parameters:
- payload_bytes Payload size in bytes.
- payload_bytes Number of bytes reduced.
Return:
- Predicted time in seconds.
- Predicted time in seconds.
Predict torus all-reduce time for a payload. Predict all-reduce time over the 3D torus using the Section 5 cost model.
function PredictRingTimeSeconds¶
Parameters:
- payload_bytes Payload size in bytes.
- ring_bandwidth Ring bandwidth in bytes/sec, or single-link when <= 0.
- payload_bytes Number of bytes reduced.
- ring_bandwidth Ring bandwidth in bytes/second; derived from the model when non-positive.
Return:
- Predicted time in seconds.
- Predicted time in seconds.
Predict ring all-reduce time for a payload. Predict all-reduce time over a single ring of the same node count.
function SpeedupOverRing¶
Parameters:
- payload_bytes Payload size in bytes.
- ring_bandwidth Ring bandwidth in bytes/sec, or single-link when <= 0.
- payload_bytes Number of bytes reduced.
- ring_bandwidth Optional ring bandwidth; defaults to the model's.
Return:
- Speedup factor.
- Speedup factor of torus over ring.
Predicted speedup of the torus over a ring for a payload. Ratio of ring all-reduce time to torus all-reduce time.
function GenerateReport¶
Parameters:
- payload_bytes Payload size in bytes.
- payload_bytes Payload size to model.
Return:
- Formatted report text.
- Multi-line report text.
Render a full comparison report for a payload. Build a formatted torus-vs-ring cost analysis report.
function OptimizeDimensions¶
Parameters:
- total_nodes Total node count to factor.
- total_nodes Number of nodes to factor into three dimensions.
Return:
- Chosen torus dimensions.
- Best kx x ky x kz factorization found.
Find the factorisation minimising latency for a node count. Choose the torus factorization of total_nodes that minimizes total hops.