Dlio

Namespace: dftracer::utils::utilities::dlio

struct AggregatedTraces

Public Members

std::vector<std::vector<double>> fetch_block_trace
std::vector<std::vector<double>> fetch_iter_trace
std::vector<std::vector<double>> getitem_trace
std::vector<double> computation_times
std::vector<double> preprocess_times
std::shared_ptr<DDSketch> fetch_block_sketch
std::shared_ptr<DDSketch> fetch_iter_sketch
std::shared_ptr<DDSketch> preprocess_sketch
std::shared_ptr<DDSketch> getitem_sketch
Statistic fetch_block_stats
Statistic fetch_iter_stats
Statistic preprocess_stats
Statistic getitem_stats
double trace_e2e_duration
double trace_rank_variance
std::vector<double> trace_per_rank_throughput
ComponentTimeMetrics trace_preprocess_metrics
ComponentTimeMetrics trace_fetch_iter_metrics
ComponentTimeMetrics trace_fetch_block_metrics
std::vector<std::uint64_t> rank_pids
int num_ranks
int num_steps
bool any_data
bool sketches_available
std::uint64_t time_interval_us
struct BarrierSimulationResult

Public Members

double e2e_duration
double e2e_error
double avg_barrier_overhead
double max_barrier_overhead
std::vector<double> per_rank_completion_time
double rank_variance
double trace_rank_variance
double rank_variance_error
double load_imbalance
std::vector<double> simulated_fetch_block
double fetch_block_cdf_similarity
std::vector<double> simulated_preprocess
std::vector<double> simulated_getitem
std::vector<double> simulated_fetch_iter
double fetch_iter_cdf_similarity
double getitem_cdf_similarity
double avg_queue_depth
double avg_queue_stalls
ComponentTimeMetrics preprocess_metrics
ComponentTimeMetrics fetch_iter_metrics
ComponentTimeMetrics fetch_block_metrics
std::optional<ComponentTimeMetrics> trace_preprocess_metrics
std::optional<ComponentTimeMetrics> trace_fetch_iter_metrics
std::optional<ComponentTimeMetrics> trace_fetch_block_metrics
std::vector<double> simulated_per_rank_throughput
std::vector<double> trace_per_rank_throughput
double throughput_mean
double trace_throughput_mean
double throughput_mean_error
double throughput_variance
double trace_throughput_variance
double throughput_cdf_similarity
class BarrierSimulator

Public Functions

BarrierSimulationResult simulate(const BarrierSimulatorContext &context, std::uint64_t base_seed, const Sampler &fetch_block_sampler, const Sampler &preprocess_sampler = {}) const
struct BarrierSimulatorContext

Public Members

int num_ranks
int num_steps
double trace_e2e_duration
std::vector<std::vector<double>> fetch_block_trace
std::vector<std::vector<double>> fetch_iter_trace
Statistic fetch_block_stats
Statistic fetch_iter_stats
Statistic preprocess_stats
Statistic getitem_stats
ComponentTimeMetrics trace_preprocess_metrics
ComponentTimeMetrics trace_fetch_iter_metrics
ComponentTimeMetrics trace_fetch_block_metrics
double trace_rank_variance
std::vector<double> trace_per_rank_throughput
std::optional<std::vector<std::vector<double>>> getitem_trace
std::optional<Statistic> io_stats
std::optional<std::vector<double>> io_samples
bool sync_mode
int accumulate_grad_batches
bool enable_preprocess_simulation
int num_workers
int prefetch_factor
double preprocess_slowdown_factor
double base_fetch_iter_overhead
bool is_aggregated_trace
double avg_calls_per_epoch
struct Boundary

Public Members

std::int64_t time
int delta
struct ComponentTimeMetrics

Public Functions

inline double concurrency() const

Public Members

double union_time
double accumulated_time
std::uint64_t num_samples
Statistic stats
struct DlioTimingBlock

Public Members

BestModel model
double max_bound
struct OptimizerOptions

Public Members

int max_iterations
double target_e2e_error
double target_cdf_similarity
int patience
double epsilon
double momentum
double min_percentile
double initial_percentile
std::uint64_t base_seed
struct OptimizerResult

Public Members

BarrierSimulationResult best
double best_percentile
int iterations_used
bool converged
struct TraceLoaderOptions

Public Members

std::uint64_t max_samples_per_entry
std::uint64_t seed
struct WorkInterval

Public Members

double start_time
double end_time
double preprocess_duration
class WorkerQueue

Public Functions

inline WorkerQueue(int num_workers, int prefetch_factor)
std::vector<WorkInterval> produce_batches(double current_time, const BatchTimeSampler &sampler)
double consume_batch(double current_time, double base_overhead)
inline std::size_t queue_depth() const
inline bool had_stall() const
inline std::uint64_t stall_count() const

Free Functions

double dftracer::utils::utilities::dlio::cdf_similarity(const std::vector<double> &a, const std::vector<double> &b)
AggregatedTraces dftracer::utils::utilities::dlio::load_aggregated_traces(const std::string &db_path, const TraceLoaderOptions &options = {})
BarrierSimulatorContext dftracer::utils::utilities::dlio::make_simulator_context(const AggregatedTraces &traces, int num_workers = 8, int prefetch_factor = 2)
OptimizerResult dftracer::utils::utilities::dlio::optimize_max_bound_percentile(const BarrierSimulatorContext &context, const BestModel &model, std::vector<double> sample_times, const OptimizerOptions &options = {})
double dftracer::utils::utilities::dlio::percentile(const std::vector<double> &sorted_data, double pct)
std::string dftracer::utils::utilities::dlio::render_dlio_yaml(const DlioTimingBlock *computation, const DlioTimingBlock *preprocess)
double dftracer::utils::utilities::dlio::sweep_union(std::vector<Boundary> &boundaries)
double dftracer::utils::utilities::dlio::variance(const std::vector<double> &values)
bool dftracer::utils::utilities::dlio::write_dlio_yaml(std::ostream &out, const DlioTimingBlock *computation, const DlioTimingBlock *preprocess)