מעקב באמצעות tpu-info CLI

tpu-info CLI הוא כלי לזיהוי מכשירי Cloud TPU ולקריאת מדדי זמן ריצה מהספרייה libtpu, כולל שימוש בזיכרון ומחזור פעילות. הוא תומך בצילומי מצב סטטיים חד-פעמיים ובסטרימינג בשידור חי כדי לעקוב אחרי מדדים באופן רציף.

התקנה

מתקינים את הגרסה האחרונה באמצעות pip:

pip install tpu-info

אפשרות אחרת היא להתקין את tpu-info מהמקור:

pip install git+https://github.com/google/cloud-accelerator-diagnostics/#subdirectory=tpu_info

אם כבר התקנתם גרסה של tpu-info, ודאו שהיא תואמת לסביבה שלכם ושלא חסרים בה מדדים ותכונות. מידע נוסף זמין במאמר תכונות או מדדים חסרים.

גישה למדדים רגילים של LibTPU באמצעות ה-CLI

כדי לראות את מדדי ברירת המחדל של tpu-info באמצעות ה-CLI, מריצים את הפקודה הבאה:

tpu-info

הפלט אמור להיראות כך:

TPU Chips

| Chip         | Type         | Devices | PID    |
|--------------|--------------|---------|--------|
| /dev/vfio/0  | TPU v6e chip | 1       | 1022   |
| /dev/vfio/1  | TPU v6e chip | 1       | 1022   |
| /dev/vfio/2  | TPU v6e chip | 1       | 1022   |
| /dev/vfio/3  | TPU v6e chip | 1       | 1022   |

TPU Runtime Utilization

| Chip   | HBM Usage (GiB)          | Duty cycle |
|--------|--------------------------|------------|
| 8      | 17.26 GiB / 31.25 GiB    |    100.00% |
| 9      |  9.26 GiB / 31.25 GiB    |    100.00% |
| 12     |  9.26 GiB / 31.25 GiB    |    100.00% |
| 13     |  9.26 GiB / 31.25 GiB    |    100.00% |

TensorCore Utilization

| Core ID | TensorCore Utilization |
|---------|------------------------|
| 0       | 15.17%                 |
| 1       | 14.62%                 |
| 2       | 14.68%                 |
| 3       | 15.14%                 |

TPU Buffer Transfer Latency

| Buffer Size  | P50          | P90          | P95          | P999         |
|--------------|--------------|--------------|--------------|--------------|
| 8MB+         | 18264.03 us  | 33263.06 us  | 35990.98 us  | 53997.32 us  |

TPU Inbound Buffer Transfer Latency

| Buffer Size  | P50          | P90          | P95          | P999         |
|--------------|--------------|--------------|--------------|--------------|
| 8MB+         | 18316.95 us  | 32857.03 us  | 36501.59 us  | 58854.54 us  |

TPU Host Compute Latency

| Buffer Size  | P50          | P90          | P95          | P999         |
|--------------|--------------|--------------|--------------|--------------|
| 8MB+         | 678.33 us    | 2611.93 us   | 5258.30 us   | 11083.23 us  |

TPU gRPC TCP Minimum RTT

| P50      | P90      | P95      | P999     |
|----------|----------|----------|----------|
| 35.99 us | 52.15 us | 53.83 us | 55.51 us |

TPU gRPC TCP Delivery Rate

| P50           | P90           | P95           | P999          |
|---------------|---------------|---------------|---------------|
| 12305.96 Mbps | 18367.10 Mbps | 24872.11 Mbps | 44841.55 Mbps |

Usage

כדי לראות את נתוני השימוש הנוכחיים ב-TPU, צריך להפעיל עומס עבודה של TPU עם מסגרת נתמכת של למידת מכונה, כמו JAX או PyTorch/XLA.tpu-info אפשר להריץ את הפקודה tpu-info במסוף עם הדגלים הבאים.

עיבוד

משתמשים בדגל --process או -p כדי להציג מידע על התהליכים שפועלים ב-TPU.

$ tpu-info --process

הפלט אמור להיראות כך:

TPU Process Info

| Chip        | PID    | Process Name |
|-------------|--------|--------------|
| /dev/vfio/0 | 799657 | python3      |
| /dev/vfio/1 | 799657 | python3      |
| /dev/vfio/2 | 799657 | python3      |
| /dev/vfio/3 | 799657 | python3      |
| /dev/vfio/4 | 799657 | python3      |
| /dev/vfio/5 | 799657 | python3      |
| /dev/vfio/6 | 799657 | python3      |
| /dev/vfio/7 | 799657 | python3      |

מדד

משתמשים בדגל --metric כדי להציג מדדים ספציפיים. אפשר לציין כמה מדדים ולהפריד ביניהם ברווחים. דוגמאות למדדים נפוצים שנתמכים:

  • hbm_usage
  • duty_cycle_percent
  • tensorcore_utilization
  • buffer_transfer_latency
  • host_to_device_transfer_latency
  • device_to_host_transfer_latency
  • collective_e2e_latency
$ tpu-info --metric duty_cycle_percent hbm_usage

הפלט אמור להיראות כך:

TPU Duty Cycle

| Core ID | Duty Cycle (%) |
|---------|----------------|
| 0       | 100.00%        |
| 1       | 100.00%        |
| 2       | 100.00%        |
| 3       | 100.00%        |
| 4       | 100.00%        |
| 5       | 100.00%        |
| 6       | 100.00%        |
| 7       | 100.00%        |

TPU HBM Usage

| Chip   | HBM Usage (GiB)       |
|--------|-----------------------|
| 0      | 29.50 GiB / 31.25 GiB |
| 1      | 21.50 GiB / 31.25 GiB |
| 2      | 21.50 GiB / 31.25 GiB |
| 3      | 21.50 GiB / 31.25 GiB |
| 4      | 21.50 GiB / 31.25 GiB |
| 5      | 21.50 GiB / 31.25 GiB |
| 6      | 21.50 GiB / 31.25 GiB |
| 7      | 21.50 GiB / 31.25 GiB |

רשימת מדדים

משתמשים בדגל --list_metrics כדי להציג את כל המדדים הנתמכים שאפשר לבקש באמצעות הדגל --metric.

$ tpu-info --list_metrics

הפלט אמור להיראות כך:

╭─ Supported Metrics ─────────────────────────────────────────────────────────────────────────────╮
│         grpc_tcp_min_rtt                                                                        │
│         host_to_device_transfer_latency                                                         │
│         grpc_tcp_delivery_rate                                                                  │
│         inbound_buffer_transfer_latency                                                         │
│         host_compute_latency                                                                    │
│         buffer_transfer_latency                                                                 │
│         collective_e2e_latency                                                                  │
│         device_to_host_transfer_latency                                                         │
│         hbm_usage                                                                               │
│         duty_cycle_percent                                                                      │
│         tensorcore_utilization                                                                  │
╰─────────────────────────────────────────────────────────────────────────────────────────────────╯

מדדים של סטרימינג

במצב סטרימינג, הנתונים הסטטיסטיים של השימוש מתעדכנים ומוצגים מעת לעת. כדי להזרים את המדדים של LibTPU, מוסיפים את הדגל --streaming לפקודה tpu-info. משתמשים בדגל --rate כדי לשלוט בקצב של הסטרימינג בשניות.

כדי להזרים את מדדי ברירת המחדל של tpu-info באמצעות ה-CLI, משתמשים בפקודה הבאה:

# Refresh metrics every 2 seconds
tpu-info --streaming --rate 2

הפלט אמור להיראות כך:

Refresh rate: 0.1s
Last update: 2025-07-24 11:00:59 UTC
Libtpu version: 0.0.19.dev20250721+nightly
Accelerator type: v6e

TPU Chips

| Chip         | Type         | Devices | PID    |
|--------------|--------------|---------|--------|
| /dev/vfio/0  | TPU v6e chip | 1       | 1022   |
| /dev/vfio/1  | TPU v6e chip | 1       | 1022   |
| /dev/vfio/2  | TPU v6e chip | 1       | 1022   |
| /dev/vfio/3  | TPU v6e chip | 1       | 1022   |

TPU Runtime Utilization

| Chip   | HBM Usage (GiB)          | Duty cycle |
|--------|--------------------------|------------|
| 8      | 17.26 GiB / 31.25 GiB    |    100.00% |
| 9      |  9.26 GiB / 31.25 GiB    |    100.00% |
| 12     |  9.26 GiB / 31.25 GiB    |    100.00% |
| 13     |  9.26 GiB / 31.25 GiB    |    100.00% |

TensorCore Utilization

| Core ID | TensorCore Utilization |
|---------|------------------------|
| 0       | 15.17%                 |
| 1       | 14.62%                 |
| 2       | 14.68%                 |
| 3       | 15.14%                 |

TPU Buffer Transfer Latency

| Buffer Size  | P50          | P90          | P95          | P999         |
|--------------|--------------|--------------|--------------|--------------|
| 8MB+         | 18264.03 us  | 33263.06 us  | 35990.98 us  | 53997.32 us  |

TPU Inbound Buffer Transfer Latency

| Buffer Size