***

sidebar-title: User Interface
---------------------

For clean Markdown of any page, append .md to the page URL. For a complete documentation index, see https://docs.nvidia.com/aiperf/tutorials/configuration/llms.txt. For full documentation content, see https://docs.nvidia.com/aiperf/tutorials/configuration/llms-full.txt.

# User Interface

AIPerf provides 3 UI types to display benchmark progress.

## Overview

Choose the UI type that matches your workflow:

- **Dashboard**: Full Textual TUI with real-time metrics and GPU telemetry (default in interactive terminals)
- **Simple**: TQDM progress bars for minimal overhead
- **None**: Application logs only, no progress UI (default in non-interactive environments)

All types display the final metrics table upon completion. UI type only affects progress display during benchmark execution.

**Note:** Both `--ui-type` and `--ui` are supported interchangeably.

### Automatic TTY Detection

AIPerf automatically detects whether it is running in an interactive terminal (TTY):

- **Interactive terminal (TTY)**: Defaults to `dashboard`
- **Non-interactive (piped, redirected, CI/CD)**: Defaults to `none` with basic non-rich log formatting

This means `aiperf profile ... | tee output.log` or `aiperf profile ... > output.log` will automatically use `--ui-type none` and plain-text logs without Rich formatting.

To override the automatic detection, explicitly pass `--ui-type`:

```bash
# Force dashboard UI even when piping output
aiperf profile ... --ui-type dashboard | tee output.log

# Force no UI even in an interactive terminal
aiperf profile ... --ui-type none
```

## Dashboard (Default in TTY)

The full-featured TUI provides:
- Real-time request and record metrics
- Live GPU telemetry (when enabled)
- Worker status monitoring
- Interactive display with multiple tabs

```bash
aiperf profile \
  --model Qwen/Qwen3-0.6B \
  --url localhost:8000 \
  --endpoint-type chat \
  --concurrency 10 \
  --request-count 100 \
  --streaming
```

**When to use:**
- Monitoring benchmarks interactively
- Viewing real-time metrics as they're computed
- Checking worker status and errors
- Viewing GPU telemetry

**Note:** Dashboard automatically switches to `simple` when using `--verbose` or `--extra-verbose` in a TTY for better log visibility.

## Simple

Lightweight progress bars using TQDM:

```bash
aiperf profile \
  --model Qwen/Qwen3-0.6B \
  --url localhost:8000 \
  --endpoint-type chat \
  --concurrency 10 \
  --request-count 100 \
  --streaming \
  --ui-type simple
```

**Sample Output (Successful Run):**
```
INFO     Starting AIPerf System
INFO     Registered Dataset Manager (id: 'dataset_manager_abc123')
INFO     AIPerf System is PROFILING

Profiling: 100/100 |████████████████████████| 100% [01:45<00:00]
Processing Records: 100/100 |███████████████| 100% [00:01<00:00]

INFO     Benchmark completed successfully
INFO     Results saved to: artifacts/Qwen_Qwen3-0.6B-chat-concurrency10/
```

**When to use:**
- Need lower resource overhead
- Terminal doesn't support rich TUI rendering
- Running with verbose logging

## None (Default in Non-TTY)

Shows application logs only, no progress UI. This is the automatic default when output is piped or redirected:

```bash
aiperf profile \
  --model Qwen/Qwen3-0.6B \
  --url localhost:8000 \
  --endpoint-type chat \
  --concurrency 10 \
  --request-count 100 \
  --streaming \
  --ui-type none
```

**Sample Output (Successful Run):**
```
23:07:28.809795 INFO     Starting AIPerf System
23:07:31.580751 INFO     Registered Dataset Manager (id: 'dataset_manager_abc123')
23:07:31.586297 INFO     Registered Worker Manager (id: 'worker_manager_def456')
23:07:31.595391 INFO     Registered Timing Manager (id: 'timing_manager_ghi789')
23:07:31.987169 INFO     AIPerf System is CONFIGURING
23:07:32.594891 INFO     AIPerf System is CONFIGURED
23:07:32.597896 INFO     AIPerf System is PROFILING
23:09:18.123456 INFO     Benchmark completed successfully
23:09:18.234567 INFO     Results saved to: artifacts/Qwen_Qwen3-0.6B-chat-concurrency10/
```

**When to use:**
- Automating benchmarks in scripts or CI/CD (auto-selected)
- Piping output to files (auto-selected)
- Minimizing UI overhead