Expand description
cbtop - Compute Block Top
Real-time load testing and hardware monitoring TUI built on the Brick Architecture.
§Design Philosophy
- Test-as-Interface: Every component is a falsifiable Brick (PROBAR-SPEC-009)
- presentar-terminal: All widgets and canvas from presentar-terminal (no custom reimplementation)
- Toyota Way: Jidoka, Poka-Yoke, Genchi Genbutsu principles throughout
§Architecture
Layer 4: Load Generators → SimdLoadBrick, CudaLoadBrick, WgpuLoadBrick
Layer 3: Panels → Overview, CPU, GPU, PCIe, Memory, Thermal
Layer 2: Analyzers → Throughput, Bottleneck, Thermal
Layer 1: Collectors → CPU, GPU, PCIe, Memory, Thermal§Widget Source Policy
All widgets and canvas implementations come from presentar-terminal.
cbtop does NOT implement its own widgets. If a widget is missing, it MUST
be added to presentar-terminal FIRST, then used here.
Re-exports§
pub use brick::Brick;pub use brick::BrickAssertion;pub use brick::BrickBudget;pub use brick::BrickVerification;pub use brick::BrickGrade;pub use brick::BrickScore;pub use brick::Scorable;pub use brick::fnv1a_f32;pub use brick::BrickProfiler;pub use brick::DivergenceReport;pub use brick::KernelTrace;pub use app::CbtopApp;pub use config::Config;pub use error::CbtopError;pub use headless::Benchmark;pub use headless::BenchmarkBuilder;pub use headless::BenchmarkConfig;pub use headless::BenchmarkResult;pub use headless::BenchmarkResults;pub use headless::ComparisonResult;pub use headless::LatencyStats;pub use headless::OutputFormat;pub use headless::RegressionResult;pub use headless::ScoreInfo;pub use headless::SystemInfo;pub use config::ComputeBackend;pub use config::WorkloadType;pub use optimize::AnalysisSummary;pub use optimize::BaselineEntry;pub use optimize::BaselineReport;pub use optimize::BottleneckAnalysis;pub use optimize::BottleneckEntry;pub use optimize::BottleneckSeverity;pub use optimize::CpuCapabilities;pub use optimize::OptimizationSuite;pub use optimize::OptimizationValidator;pub use optimize::RegressionDetector;pub use optimize::RegressionEntry;pub use optimize::RegressionReport;pub use optimize::ValidationResult;pub use optimize::WorkloadConfig;pub use baseline::BaselineComparison;pub use baseline::BaselineValidator;pub use baseline::GpuClass;pub use baseline::ServerBaseline;pub use baseline::SingleComparison;pub use baseline::SmHealth;pub use baseline::ThroughputGrade;pub use baseline::ValidationSummary;pub use baseline::INDUSTRY_BASELINES;pub use baseline::TGI_BASELINE;pub use baseline::TRITON_BASELINE;pub use baseline::VLLM_BASELINE;pub use quantize::ggml_type_to_format;pub use quantize::DequantStrategy;pub use quantize::GgufError;pub use quantize::GgufHeader;pub use quantize::GgufLoader;pub use quantize::GgufResult;pub use quantize::GgufTensorInfo;pub use quantize::GgufValue;pub use quantize::LayerQuantStats;pub use quantize::QuantFormat;pub use quantize::QuantStats;pub use quantize::QuantizedBrick;pub use quantize::QuantizedWeights;pub use paged_kv::BlockId;pub use paged_kv::CacheStats;pub use paged_kv::EvictionStrategy;pub use paged_kv::KvBlock;pub use paged_kv::PagedKvCache;pub use paged_kv::PagedKvError;pub use paged_kv::PagedKvResult;pub use paged_kv::SeqId;pub use paged_kv::SequenceInfo;pub use continuous_batcher::BatchSchedule;pub use continuous_batcher::BatcherStats;pub use continuous_batcher::ContinuousBatcher;pub use continuous_batcher::ExponentialMovingAverage;pub use continuous_batcher::InferenceRequest;pub use continuous_batcher::Priority;pub use continuous_batcher::SchedulingPolicy;pub use continuous_batcher::SequenceGroup;pub use continuous_batcher::SpeculativeDecoder;pub use continuous_batcher::SpeculativeOutput;pub use continuous_batcher::Token;pub use continuous_batcher::TokenOutput;pub use ironman::full_validate;pub use ironman::quick_validate;pub use ironman::GateCategory;pub use ironman::GateResult;pub use ironman::IronmanScorecard;pub use ironman::IronmanValidator;pub use ironman::QualityGate;pub use ironman::IRONMAN_GATES;pub use grammar::BuiltComputeBlock;pub use grammar::ByteSize;pub use grammar::CompositionMode;pub use grammar::ComputeBlock;pub use grammar::ComputeBlockBuilder;pub use grammar::CpuAffinity;pub use grammar::DataTransform;pub use grammar::DataType;pub use grammar::Dimensions;pub use grammar::ExecutionContext;pub use grammar::ExecutionPolicy;pub use grammar::ExecutionResult;pub use grammar::ExecutionStrategy;pub use grammar::GpuDevice;pub use grammar::GrammarError;pub use grammar::GrammarResult;pub use grammar::KernelSpec;pub use grammar::LinearResourceScale;pub use grammar::LogResourceScale;pub use grammar::ObservabilityConfig;pub use grammar::Operation;pub use grammar::QosLevel;pub use grammar::QuantScheme;pub use grammar::ResourceLimits;pub use grammar::ResourceMapping;pub use grammar::ResourceScale;pub use grammar::RetryPolicy;pub use grammar::ScaleBinding;pub use grammar::SimdWidth;pub use grammar::StrategyLayer;pub use grammar::TensorSpec;pub use grammar::WorkloadSpec;pub use adversarial::AdversarialError;pub use adversarial::AdversarialResult;pub use adversarial::AdversarialTactic;pub use adversarial::AdversarialTestSummary;pub use adversarial::BitFlipInjector;pub use adversarial::CancellationToken;pub use adversarial::CheckedArithmetic;pub use adversarial::ConfigValidator;pub use adversarial::InputValidator;pub use adversarial::MonotonicClock;pub use adversarial::RecoveryHandler;pub use adversarial::ResourceLimiter;pub use adversarial::ResourceUsage;pub use double_blind::AuditEntry;pub use double_blind::BlackBoxArtifact;pub use double_blind::FalsificationClaim;pub use double_blind::FalsificationCriterion;pub use double_blind::ReleaseDecision;pub use double_blind::Role;pub use double_blind::ScorecardComponent;pub use double_blind::ScorecardV2;pub use double_blind::SessionState;pub use double_blind::VerificationAttempt;pub use double_blind::VerificationReport;pub use double_blind::VerificationResult;pub use double_blind::VerificationSession;pub use tracing_escalation::EscalationReason;pub use tracing_escalation::EscalationThresholds;pub use tracing_escalation::OtlpSpanAttributes;pub use tracing_escalation::SyscallBreakdown;pub use tracing_escalation::TraceResult;pub use tracing_escalation::TracingEscalation;pub use roofline::BatchRooflineAnalysis;pub use roofline::BatchSummary;pub use roofline::BottleneckType;pub use roofline::HardwareProfile;pub use roofline::RooflineAnalysis;pub use roofline::RooflinePlot;pub use roofline::RooflinePlotPoint;pub use roofline::WorkloadMetrics;pub use fuzz::bound_value;pub use fuzz::checked_add_u64;pub use fuzz::checked_mul_u64;pub use fuzz::safe_div;pub use fuzz::sanitize_float;pub use fuzz::test_float_edge_cases;pub use fuzz::test_u64_edge_cases;pub use fuzz::FuzzFailure;pub use fuzz::FuzzInputValidator;pub use fuzz::FuzzResult;pub use fuzz::FuzzSuite;pub use fuzz::FuzzSummary;pub use fuzz::FuzzTargetConfig;pub use fuzz::FuzzValidationError;pub use statistics::bootstrap_ci;pub use statistics::percentile;pub use statistics::trimmed_mean;pub use statistics::ComparisonResult as StatisticalComparison;pub use statistics::EffectCategory;pub use statistics::EffectSize;pub use statistics::MannWhitneyResult;pub use statistics::OutlierFilter;pub use statistics::StatisticalAnalysis;pub use cache_analysis::elementwise_working_set;pub use cache_analysis::matrix_working_set;pub use cache_analysis::optimal_matmul_tile;pub use cache_analysis::AccessPattern;pub use cache_analysis::BandwidthPrediction;pub use cache_analysis::CacheConfig;pub use cache_analysis::CacheLevel;pub use cache_analysis::WorkingSetAnalysis;pub use latency_distribution::DistributionShape;pub use latency_distribution::HistogramBucket;pub use latency_distribution::LatencyDistribution;pub use latency_distribution::LatencyHistogram;pub use latency_distribution::TailSeverity;pub use variance_analysis::VarianceAnalysis;pub use variance_analysis::VarianceInput;pub use variance_analysis::VarianceSource;pub use profile_persistence::BackendConfig as ProfileBackend;pub use profile_persistence::ProfileConfig;pub use profile_persistence::ProfileError;pub use profile_persistence::ProfileManager;pub use profile_persistence::ProfileOverlay;pub use profile_persistence::ProfileResult;pub use profile_persistence::WorkloadConfig as ProfileWorkload;pub use golden_trace::GoldenComparator;pub use golden_trace::GoldenTrace;pub use golden_trace::GoldenTraceError;pub use golden_trace::GoldenTraceManager;pub use golden_trace::GoldenTraceResult;pub use golden_trace::SyscallBreakdown as TraceSyscallBreakdown;pub use golden_trace::SyscallBreakdownDelta;pub use golden_trace::TraceComparison;pub use golden_trace::TraceMetrics;pub use thermal_prediction::analyze_thermal;pub use thermal_prediction::assess_throttle_risk;pub use thermal_prediction::CooldownRecommendation;pub use thermal_prediction::RiskCategory;pub use thermal_prediction::ThermalAnalyzer;pub use thermal_prediction::ThermalCorrelation;pub use thermal_prediction::ThermalPrediction;pub use thermal_prediction::ThermalSample;pub use thermal_prediction::ThermalVariance;pub use thermal_prediction::ThrottleRisk;pub use thermal_prediction::DEFAULT_THROTTLE_THRESHOLD_C;pub use thermal_prediction::MIN_SAMPLES_FOR_ANALYSIS;pub use backend_regression::Backend;pub use backend_regression::BackendComparison;pub use backend_regression::BackendMeasurement;pub use backend_regression::BackendRecommendation;pub use backend_regression::BackendRegressionDetector;pub use backend_regression::BackendSummary;pub use backend_regression::SizeCliff;pub use backend_regression::TransferAnalysis;pub use backend_regression::WorkloadType as BackendWorkload;pub use correlation_analysis::CorrelationAnalyzer;pub use correlation_analysis::CorrelationResult;pub use correlation_analysis::EventSample;pub use correlation_analysis::EventType;pub use correlation_analysis::InterferenceCategory;pub use correlation_analysis::InterferenceResult;pub use correlation_analysis::IsolationAction;pub use correlation_analysis::IsolationRecommendation;pub use correlation_analysis::PerformanceSample;pub use correlation_analysis::SystemSnapshot;pub use performance_prediction::DataPoint;pub use performance_prediction::FittedModel;pub use performance_prediction::ModelType;pub use performance_prediction::PerformancePredictor;pub use performance_prediction::Prediction;pub use performance_prediction::MIN_SAMPLES_FOR_FIT;pub use anomaly_detection::Anomaly;pub use anomaly_detection::AnomalyDetector;pub use anomaly_detection::AnomalyReport;pub use anomaly_detection::AnomalySeverity;pub use anomaly_detection::AnomalyType;pub use anomaly_detection::ChangePoint;pub use anomaly_detection::DEFAULT_IQR_MULTIPLIER;pub use anomaly_detection::DEFAULT_ZSCORE_THRESHOLD;pub use anomaly_detection::MIN_SAMPLES_FOR_DETECTION;pub use workload_characterization::ClassificationResult;pub use workload_characterization::RecommendedBackend;pub use workload_characterization::WorkloadCategory;pub use workload_characterization::WorkloadCharacterizer;pub use workload_characterization::WorkloadFeatures;pub use export_reporting::BenchmarkMetric;pub use export_reporting::BenchmarkReport;pub use export_reporting::ComparisonEntry;pub use export_reporting::ComparisonReport;pub use export_reporting::ExportFormat;pub use export_reporting::ReportBuilder;pub use export_reporting::ReportExporter;pub use export_reporting::ReportType;pub use adaptive_threshold::LearnedThreshold;pub use adaptive_threshold::ThresholdCheck;pub use adaptive_threshold::ThresholdDirection;pub use adaptive_threshold::ThresholdLearner;pub use adaptive_threshold::DEFAULT_CONFIDENCE_LEVEL;pub use adaptive_threshold::DEFAULT_OUTLIER_THRESHOLD;pub use adaptive_threshold::MIN_SAMPLES_FOR_LEARNING;pub use frequency_control::CpuFrequencyInfo;pub use frequency_control::CpuGovernor;pub use frequency_control::FrequencyController;pub use frequency_control::FrequencyLock;pub use frequency_control::FrequencyReading;pub use frequency_control::FrequencyVariance;pub use context_regression::BaselineEntry as ContextBaselineEntry;pub use context_regression::ContextRegressionPredictor;pub use context_regression::RegressionCheck;pub use context_regression::RegressionThreshold;pub use context_regression::SystemContext;pub use context_regression::Trend;pub use context_regression::DEFAULT_COLD_START_MARGIN;pub use context_regression::DEFAULT_STALENESS_SEC;pub use context_regression::MIN_SAMPLES_FOR_CONTEXT;pub use alerting::alert_from_anomaly;pub use alerting::Alert;pub use alerting::AlertChannel;pub use alerting::AlertRouter;pub use alerting::AlertRouterConfig;pub use alerting::AlertSeverity;pub use alerting::DeliveryResult;pub use alerting::MessageTemplate;pub use prometheus::validate_metric_name;pub use prometheus::CounterValue;pub use prometheus::GaugeValue;pub use prometheus::HistogramBuckets;pub use prometheus::HistogramValue;pub use prometheus::Labels;pub use prometheus::MetricDef;pub use prometheus::MetricType;pub use prometheus::MetricsRegistry;pub use prometheus::DEFAULT_BUCKETS;pub use prometheus::DEFAULT_MAX_LABELS;pub use cost_tracker::default_gpu_pricing;pub use cost_tracker::BudgetAlert;pub use cost_tracker::CloudProvider;pub use cost_tracker::CostComparison;pub use cost_tracker::CostResult;pub use cost_tracker::CostTracker;pub use cost_tracker::EnergyMeasurement;pub use cost_tracker::GpuPricing;pub use cost_tracker::DEFAULT_CARBON_INTENSITY;pub use cost_tracker::JOULES_PER_KWH;pub use event_streaming::compress_data;pub use event_streaming::event_from_sample;pub use event_streaming::EventBatch;pub use event_streaming::EventStreamer;pub use event_streaming::MetricEvent;pub use event_streaming::RetryConfig;pub use event_streaming::SinkHealth;pub use event_streaming::SinkType;pub use event_streaming::DEFAULT_BATCH_SIZE;pub use event_streaming::SCHEMA_VERSION;pub use remote_agent::AggregatedResult;pub use remote_agent::AggregationStrategy;pub use remote_agent::AuthMethod;pub use remote_agent::CommandResult;pub use remote_agent::HostBenchmark;pub use remote_agent::HostConfig;pub use remote_agent::HostHealth;pub use remote_agent::HostState;pub use remote_agent::RemoteAgent;pub use remote_agent::RemoteAgentConfig;pub use remote_agent::RemoteError;pub use remote_agent::RemoteResult;pub use remote_agent::DEFAULT_HEALTH_CHECK_INTERVAL_SEC;pub use remote_agent::DEFAULT_MAX_CONCURRENT;pub use remote_agent::DEFAULT_RETRY_DELAY_MS;pub use profile_compare::BenchmarkProfile;pub use profile_compare::ChangeDirection;pub use profile_compare::CompareConfig;pub use profile_compare::CompareError;pub use profile_compare::CompareResult;pub use profile_compare::ComparisonVerdict;pub use profile_compare::EffectMagnitude;pub use profile_compare::EffectSizeResult;pub use profile_compare::MetricComparison;pub use profile_compare::MetricSamples;pub use profile_compare::ProfileComparator;pub use profile_compare::ProfileComparison;pub use profile_compare::WelchTestResult;pub use profile_compare::DEFAULT_CONFIDENCE_LEVEL as COMPARE_DEFAULT_CONFIDENCE_LEVEL;pub use profile_compare::DEFAULT_REGRESSION_THRESHOLD as COMPARE_DEFAULT_REGRESSION_THRESHOLD;pub use profile_compare::MIN_COMPARISON_SAMPLES;pub use observability_backend::format_dogstatsd;pub use observability_backend::BackendHealth;pub use observability_backend::DatadogConfig;pub use observability_backend::ExportMetric;pub use observability_backend::ExportResult;pub use observability_backend::HoneycombConfig;pub use observability_backend::MetricExportType;pub use observability_backend::NewRelicConfig;pub use observability_backend::ObservabilityBackend;pub use observability_backend::ObservabilityConfig as ObsBackendConfig;pub use observability_backend::ObservabilityError;pub use observability_backend::ObservabilityExporter;pub use observability_backend::ObservabilityResult;pub use observability_backend::OtlpConfig;pub use observability_backend::WebhookConfig;pub use observability_backend::DEFAULT_BATCH_SIZE as OBS_DEFAULT_BATCH_SIZE;pub use observability_backend::DEFAULT_FLUSH_INTERVAL_MS;pub use regression_pipeline::BenchmarkMetric as PipelineBenchmarkMetric;pub use regression_pipeline::BenchmarkResults as PipelineBenchmarkResults;pub use regression_pipeline::GitRef;pub use regression_pipeline::MetricRegression;pub use regression_pipeline::PipelineConfig;pub use regression_pipeline::PipelineError;pub use regression_pipeline::PipelineResult;pub use regression_pipeline::PipelineStatus;pub use regression_pipeline::RegressionAnalysis;pub use regression_pipeline::RegressionPipeline;pub use regression_pipeline::StatusCheck;pub use regression_pipeline::DEFAULT_REGRESSION_THRESHOLD as PIPELINE_REGRESSION_THRESHOLD;pub use regression_pipeline::DEFAULT_TIMEOUT_SEC;pub use regression_pipeline::DEFAULT_WARNING_THRESHOLD;pub use federated_metrics::AggregatedMetrics;pub use federated_metrics::FederatedHost;pub use federated_metrics::FederationConfig;pub use federated_metrics::GCounter;pub use federated_metrics::LwwRegister;pub use federated_metrics::MetricsFederation;pub use federated_metrics::OrSet;pub use adaptive_ml::AdaptiveThresholdMl;pub use adaptive_ml::AnomalyResult as MlAnomalyResult;pub use adaptive_ml::ClassificationMetrics as MlClassificationMetrics;pub use adaptive_ml::LearnedWorkloadThreshold;pub use adaptive_ml::MlThresholdConfig;pub use adaptive_ml::MlThresholdError;pub use adaptive_ml::TimeSeriesFeatures;pub use adaptive_ml::WorkloadClass;pub use incremental_snapshot::DeltaMetric;pub use incremental_snapshot::DeltaSnapshot;pub use incremental_snapshot::IncrementalSnapshotStore;pub use incremental_snapshot::MetricData;pub use incremental_snapshot::ProfileSnapshot;pub use incremental_snapshot::RetentionTier;pub use incremental_snapshot::SnapshotConfig;pub use incremental_snapshot::SnapshotError;pub use incremental_snapshot::SnapshotIndex;pub use incremental_snapshot::SnapshotQuery;pub use predictive_scheduler::HostProfile;pub use predictive_scheduler::InstanceType;pub use predictive_scheduler::PredictiveScheduler;pub use predictive_scheduler::PredictiveSchedulerConfig;pub use predictive_scheduler::SchedulerMetrics;pub use predictive_scheduler::SchedulingDecision;pub use predictive_scheduler::WorkloadSpec as SchedulerWorkloadSpec;
Modules§
- adaptive_
ml - Dynamic Adaptive Thresholds with ML (PMAT-049)
- adaptive_
threshold - Adaptive Threshold Learning System (PMAT-037)
- adversarial
- Adversarial Falsification Testing (PMAT-019)
- alerting
- Real-Time Alert Integration System (PMAT-040)
- anomaly_
detection - Anomaly Detection Engine (PMAT-034)
- app
- cbtop Application State Machine
- backend_
regression - Cross-Backend Regression Detector (PMAT-031)
- baseline
- Industry Baseline Validation (PMAT-016)
- brick
- Core Brick trait and types (PROBAR-SPEC-009 alignment)
- bricks
- Brick implementations for cbtop
- cache_
analysis - Cache Efficiency Analysis Module (PMAT-025)
- config
- Configuration for cbtop
- context_
regression - Context-Aware Regression Predictor (PMAT-039)
- continuous_
batcher - ContinuousBatcher Implementation (PMAT-015)
- correlation_
analysis - Multi-Metric Correlation Analysis (PMAT-032)
- cost_
tracker - Cost and Energy Efficiency Tracker (PMAT-042)
- double_
blind - Double-Blind Verification Framework (PMAT-020)
- error
- Error types for cbtop
- event_
streaming - Structured Event Streaming (PMAT-043)
- export_
reporting - Multi-Format Export System (PMAT-036)
- federated_
metrics - Federated Metrics Aggregation (PMAT-048)
- frequency_
control - CPU Frequency Control Backend (PMAT-038)
- fuzz
- Fuzz Testing Integration (PMAT-023)
- golden_
trace - Golden Trace Comparison (PMAT-029)
- grammar
- Grammar of ComputeBlock (§32)
- headless
- Headless benchmark mode for CI/CD and AI agent integration
- incremental_
snapshot - Incremental Profile Snapshots (PMAT-050)
- ironman
- Ironman Falsification Suite (F901-F920)
- latency_
distribution - Latency Distribution Analysis Module (PMAT-026)
- observability_
backend - Observability Backend Integrations (PMAT-046)
- optimize
- Optimization identification tooling for cbtop
- paged_
kv - PagedKvCache Implementation (PMAT-014)
- performance_
prediction - Performance Prediction Model (PMAT-033)
- predictive_
scheduler - PMAT-051: Predictive Scheduling Optimizer
- profile_
compare - Profile Diffing and A/B Comparison (PMAT-045)
- profile_
persistence - Profile Persistence and Rotation (PMAT-028)
- prometheus
- Prometheus Metrics Exporter (PMAT-041)
- quantize
- QuantizedBrick Implementation (PMAT-013)
- regression_
pipeline - CI/CD Regression Detection Pipeline (PMAT-047)
- remote_
agent - Remote SSH/Headless Agent Integration (PMAT-044)
- ring_
buffer - SIMD-optimized ring buffer for time-series data
- roofline
- Roofline Model Analyzer (PMAT-022)
- statistics
- Statistical Analysis Module (PMAT-024)
- thermal_
prediction - Thermal Trend Prediction (PMAT-030)
- tracing_
escalation - Tracing Escalation Framework (PMAT-021)
- variance_
analysis - Variance Source Analysis Module (PMAT-027)
- workload_
characterization - Workload Characterization System (PMAT-035)
Structs§
- Braille
Graph - Time-series graph widget.
- Cell
Buffer - Buffer of terminal cells with dirty tracking.
- Color
- RGBA color with values in the range [0.0, 1.0].
- Constraints
- Layout constraints that specify minimum and maximum sizes.
- Diff
Renderer - Differential renderer that minimizes terminal I/O.
- Direct
Terminal Canvas - Direct terminal canvas that implements presentar’s Canvas trait.
- Meter
- Horizontal meter widget displaying a percentage value.
- Point
- A 2D point with x and y coordinates.
- Rect
- A rectangle defined by position and size.
- Size
- A 2D size with width and height.
- Table
- Scrollable table widget with headers and rows.
- Text
Style - Text style for rendering.
Enums§
Traits§
- Canvas
- Canvas trait for paint operations.