[GUI] Monitor: on a Mac "GPU load" is time busy, not compute in use; VRAM HIT RATE is always a dash
メンテナーはふだん 4 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 66/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- cpp
調査の方向性
まずGUIのGPU負荷カードとRecent requestsテーブルをたどり、次にissueに記載されたテレメトリフィールドがどのように表示されるかを確認します。GPU負荷のラベルを更新するか説明を追加し、hit_rateがない場合はVRAM HIT RATE列を非表示にするか、その意味を説明します。カードが稼働時間を正確に表し、Macの行に説明のないダッシュが表示されなくなれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Area
[GUI] (the desktop app / web Monitor)
What happened
On a Mac (M5 Max, 40 GPU cores, Strata 0.2.12, engine 0.1.58-metal, Qwen3.8-Flash-Next UD-Q4_K_XL) the Monitor's GPU load card sits at 95-99% for as long as requests keep coming, in both phases:
- reading a prompt (~1,600 tok/s)
- decoding (~85 tok/s)
It reads like "all 40 cores are maxed out", but it isn't that. serve/telemetry.py (_Metal, from #2360) shows IOKit's Device Utilization %, which is the share of time the GPU had work scheduled, not the share of its compute in use. ioreg -r -d 1 -c IOAccelerator gives the same value (95) while the engine decodes. Decode on this machine is bound by memory bandwidth, so the ALUs mostly wait for weights, yet the card still says 99%. This is the same definition as NVML's utilization.gpu ("time a kernel was running"), so the number is correct. Only the label promises more than the number means.
The Recent requests table's VRAM HIT RATE column has the same kind of problem. On a Mac it is – on every row, because the Metal engine reports no expert-cache lookups (hit_rate is None in /metrics: unified memory, every expert is mapped). The column takes space and suggests something is missing.
Expected
The card says what it measures, and Mac-only blanks are explained or hidden.
Proposal (small, GUI only)
- Rename the card to GPU busy, or keep the name and add a subtitle/tooltip: "share of time the GPU had work scheduled; not how much of its compute is in use". This applies to NVML and amdgpu as well, since they use the same definition.
- Hide the VRAM HIT RATE column when no row in the table has a
hit_rate(or when the backend ismetal), or give it a tooltip: "unified memory: every expert is mapped, so there is no VRAM cache to hit". - Optional: next to the busy %, show a load figure that tells "busy" apart from "saturated" during decode. One option is the achieved weight bandwidth (bytes of active weights read per token × decode tok/s) against the chip's peak. Another is GPU power or frequency once #5016 lands.
Related
- #2360: added the Mac reader and
gpu_note - #5457:
gpu_noteis never shown on a Mac, so temp, Power and PCIe are silent dashes - #5016: Apple Silicon GPU temp and power without root
These three cover temp, power and PCIe; this issue covers only the GPU load label and the hit-rate column.
- 主要言語
- C++
- スター
- 11.6k
- フォーク
- 1k
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
Niko1221/Strata のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
Niko1221/Strata#5560 · コメント 2 件 ·
メンテナーはふだん 4 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
Niko1221/Strata#5553 · コメント 2 件 ·
メンテナーはふだん 4 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 65/100
メンテナーはふだん 4 日以内に返信
-
needs-format
難易度 1/5 1〜3時間 初心者へのやさしさ 88/100
Niko1221/Strata#5510 · コメント 1 件 ·
メンテナーはふだん 4 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 78/100
メンテナーはふだん 4 日以内に返信
Niko1221/Strata の issue をすべて見る
似ている issue
-
NVIDIA windows
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
メンテナーはふだん 1 日以内に返信
-
kind/bug priority/medium qa_automation
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
yugabyte/yugabyte-db#37324 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 82/100
CharlotteCross1998/awesome-game-decompilations#61 · コメント 1 件 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
godotengine/godot#125240 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
メンテナーはふだん 1 日以内に返信