Repository navigation
Conversation
…s.bat's for /f quoting close() releases the PMLog device handle and the ADL context, and the one-off call sites (free_vram_mib(), gpu_vram_mib()) release the readers they build: 40 one-off reads hold the process handle count at 197 (was ~+2 per call, the growth crkva measured in Niko1221#1434). test_telemetry_adl adds AdlReaderCleanup (close idempotent, no handle growth); the AmdTelemetry tests are pinned to the sysfs reader so they no longer depend on the machine's ADL. build_windows.bat: cmd strips the outer quote pair from a for /f command that starts and ends with a quote - double it.
strata-dev.instructions.md holds machine-local facts (ROCm venv path, gfx1201, the local engine/BUILD.json stamp) that would mislead another contributor; ignoring it keeps it out of 'git add .'.
Owner
|
Thanks for the pull request. We're resetting the tracker for 0.2.0-beta. There are more than 1,300 open issues and pull requests, too many for us to review properly, so we're closing everything that isn't being worked on right now. Closed here does not mean rejected. To reopen it takes about two minutes:
The rules are in CONTRIBUTING.md. |
lwYeo
added a commit
to lwYeo/Strata
that referenced
this pull request
Nov 1, 2026
…dings, per-card tiles, PCIe link The Web Monitor showed no AMD readings on Windows and no per-card tiles on a split: the GPU tile said 'no reading' and the PCIe line was blank. Ported from Strata-vision-telemetry-multiGPU branch pr1287-telemetry: commits 60f84f5c (the telemetry part of Niko1221#2704), 514cafa1 (start the ADL2 PMLog stream at setup) and e2c559b1 (restart a stalled PMLog stream), squashed into one. Hand-adapted to current main: server.py takes the payload hunks only (the Monitor's image-encoder card, the 'reading N pictures' live line, the encoder stats per request, the Windows AMD vram-reserve floor, closing throwaway AMD reader handles) on top of main's server.py, so main's newer features (answer_room, model-card sampling, the scrape-window gauges, the kept prompts, the chunk fields) stay; Service gets answer_room=True in __init__ (main set it only in main(), so a Service built by hand - the Monitor tests, embedding - crashed on it). The macOS telemetry (metal_working_set, the _Metal reader, its gpu_reader dispatch, the working-set wiring and note) is main's, restored over the port; the NVML power_limit keeps main's mW-to-W division. serve/test_server.py loses the AmdTelemetry class (it tests the reader code this commit replaces; serve/test_telemetry_adl.py is its replacement) and keeps MacTelemetry. Docs: the Monitor's PCIe-tile paragraph (DETAILS.md). Tests: serve/test_server 356 OK (3 skipped), test_monitor 14, test_prometheus, test_telemetry_adl 9 - all OK on the venv Python. Not run: the GPU path on a live card (this PC's split serves the Monitor through the same sampler; verified by the user's restart). Limits: ADL2 needs the AMD driver; a reading the driver does not report is blank, not guessed.
lwYeo
added a commit
to lwYeo/Strata
that referenced
this pull request
Nov 1, 2026
The Web Monitor showed no AMD readings on Windows and no per-card tiles on a split: the GPU tile said 'no reading' and the PCIe line was blank. Ported from the pr1287-telemetry branch of my fork: commits 60f84f5c (the telemetry part of Niko1221#2704), 514cafa1 (start the ADL2 PMLog stream at setup) and e2c559b1 (restart a stalled PMLog stream), squashed into one. Hand-adapted to current main: server.py takes the payload hunks only (the Monitor's image-encoder card, the 'reading N pictures' live line, the encoder stats per request, the Windows AMD vram-reserve floor, closing throwaway AMD reader handles) on top of main's server.py, so main's newer features (answer_room, model-card sampling, the scrape-window gauges, the kept prompts, the chunk fields) stay; Service gets answer_room=True in __init__ (main set it only in main(), so a Service built by hand - the Monitor tests, embedding - crashed on it). The macOS telemetry (metal_working_set, the _Metal reader, its gpu_reader dispatch, the working-set wiring and note) is main's, restored over the port; the NVML power_limit keeps main's mW-to-W division. serve/test_server.py loses the AmdTelemetry class (it tests the reader code this commit replaces; serve/test_telemetry_adl.py is its replacement) and keeps MacTelemetry. Docs: the Monitor's PCIe-tile paragraph (DETAILS.md). Tests: serve/test_server 356 OK (3 skipped), test_monitor 14, test_prometheus, test_telemetry_adl 9 - all OK on the venv Python. Not run: the GPU path on a live card (this PC's split serves the Monitor through the same sampler; verified by the user's restart). Limits: ADL2 needs the AMD driver; a reading the driver does not report is blank, not guessed.
lwYeo
added a commit
to lwYeo/Strata
that referenced
this pull request
Nov 1, 2026
The Web Monitor showed no AMD readings on Windows and no per-card tiles on a split: the GPU tile said 'no reading' and the PCIe line was blank. Ported from the telemetry part of Niko1221#2704: commits d0dcf48 (the AMD telemetry on Windows, on the closed PR's branch D4ve0s:feature/ windows-amd-vision-telemetry) and 3c615f4 (release every ADL2 handle a reader takes), squashed into one. Hand-adapted to current main: server.py takes the payload hunks only (the Monitor's image-encoder card, the 'reading N pictures' live line, the encoder stats per request, the Windows AMD vram-reserve floor, closing throwaway AMD reader handles) on top of main's server.py, so main's newer features (answer_room, model-card sampling, the scrape-window gauges, the kept prompts, the chunk fields) stay; Service gets answer_room=True in __init__ (main set it only in main(), so a Service built by hand - the Monitor tests, embedding - crashed on it). The macOS telemetry (metal_working_set, the _Metal reader, its gpu_reader dispatch, the working-set wiring and note) is main's, restored over the port; the NVML power_limit keeps main's mW-to-W division. serve/test_server.py loses the AmdTelemetry class (it tests the reader code this commit replaces; serve/test_telemetry_adl.py is its replacement) and keeps MacTelemetry. Docs: the Monitor's PCIe-tile paragraph (DETAILS.md). Tests: serve/test_server 356 OK (3 skipped), test_monitor 14, test_prometheus, test_telemetry_adl 9 - all OK on the venv Python. Not run: the GPU path on a live card (this PC's split serves the Monitor through the same sampler; verified by the user's restart). Limits: ADL2 needs the AMD driver; a reading the driver does not report is blank, not guessed.
lwYeo
added a commit
to lwYeo/Strata
that referenced
this pull request
Nov 3, 2026
The Web Monitor showed no AMD readings on Windows and no per-card tiles on a split: the GPU tile said 'no reading' and the PCIe line was blank. Ported from the telemetry part of Niko1221#2704: commits d0dcf48 (the AMD telemetry on Windows, on the closed PR's branch D4ve0s:feature/ windows-amd-vision-telemetry) and 3c615f4 (release every ADL2 handle a reader takes), squashed into one. Hand-adapted to current main: server.py takes the payload hunks only (the Monitor's image-encoder card, the 'reading N pictures' live line, the encoder stats per request, the Windows AMD vram-reserve floor, closing throwaway AMD reader handles) on top of main's server.py, so main's newer features (answer_room, model-card sampling, the scrape-window gauges, the kept prompts, the chunk fields) stay; Service gets answer_room=True in __init__ (main set it only in main(), so a Service built by hand - the Monitor tests, embedding - crashed on it). The macOS telemetry (metal_working_set, the _Metal reader, its gpu_reader dispatch, the working-set wiring and note) is main's, restored over the port; the NVML power_limit keeps main's mW-to-W division. serve/test_server.py loses the AmdTelemetry class (it tests the reader code this commit replaces; serve/test_telemetry_adl.py is its replacement) and keeps MacTelemetry. Docs: the Monitor's PCIe-tile paragraph (DETAILS.md). Tests: serve/test_server 356 OK (3 skipped), test_monitor 14, test_prometheus, test_telemetry_adl 9 - all OK on the venv Python. Not run: the GPU path on a live card (this PC's split serves the Monitor through the same sampler; verified by the user's restart). Limits: ADL2 needs the AMD driver; a reading the driver does not report is blank, not guessed.
lwYeo
added a commit
to lwYeo/Strata
that referenced
this pull request
Nov 6, 2026
The Web Monitor showed no AMD readings on Windows and no per-card tiles on a split: the GPU tile said 'no reading' and the PCIe line was blank. Ported from the telemetry part of Niko1221#2704: commits d0dcf48 (the AMD telemetry on Windows, on the closed PR's branch D4ve0s:feature/ windows-amd-vision-telemetry) and 3c615f4 (release every ADL2 handle a reader takes), squashed into one. Hand-adapted to current main: server.py takes the payload hunks only (the Monitor's image-encoder card, the 'reading N pictures' live line, the encoder stats per request, the Windows AMD vram-reserve floor, closing throwaway AMD reader handles) on top of main's server.py, so main's newer features (answer_room, model-card sampling, the scrape-window gauges, the kept prompts, the chunk fields) stay; Service gets answer_room=True in __init__ (main set it only in main(), so a Service built by hand - the Monitor tests, embedding - crashed on it). The macOS telemetry (metal_working_set, the _Metal reader, its gpu_reader dispatch, the working-set wiring and note) is main's, restored over the port; the NVML power_limit keeps main's mW-to-W division. serve/test_server.py loses the AmdTelemetry class (it tests the reader code this commit replaces; serve/test_telemetry_adl.py is its replacement) and keeps MacTelemetry. Docs: the Monitor's PCIe-tile paragraph (DETAILS.md). Tests: serve/test_server 356 OK (3 skipped), test_monitor 14, test_prometheus, test_telemetry_adl 9 - all OK on the venv Python. Not run: the GPU path on a live card (this PC's split serves the Monitor through the same sampler; verified by the user's restart). Limits: ADL2 needs the AMD driver; a reading the driver does not report is blank, not guessed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Title
Windows AMD: ADL2 telemetry, one Monitor tile per GPU, images on Windows, and a setup that keeps a two-card split
Issue: Refs #2614, #1380, #112, #2442
Summary
A Windows AMD card had no telemetry: the Monitor's GPU tiles were empty and a PC with two cards had no way to
see them apart. This reads every AMD card through ADL2 PMLog (
atiadlxx.dllover ctypes — the same interfaceHWInfo and LibreHardwareMonitor use, no new dependency), gives the Monitor one tile per card, and carries the
same numbers into
/metrics.Alongside it, three things that stopped a Windows AMD install working: SETUP renumbered or dropped cards when
HIP_VISIBLE_DEVICESwas already in the environment, re-running SETUP collapsed a two-card split back to onecard (the engine then died at start, reported as "the embedding buffer failed"), and Windows had no image
encoder at all.
One commit,
d0dcf489plus the review fixes listed under Telemetry and Tests: 35 files, +1501/−145 againstmain(v0.1.44.1). Everything is opt-in — the CUDA path is untouched,--yesnever asks the new questions,AMD images stay off by default, and the default install path writes the same config as v0.1.44.1. No engine
(C++/CUDA/HIP kernel) changes.
What changed
Telemetry (
serve/telemetry.py, +366)_Adl— ctypes bindings for ADL2 PMLog: adapter enumeration,PmLogStartwith the sensor set (edge/memtemp, board power, gfx/mem activity, bus lanes, power limit), and the malloc callback through
ucrtbase.dll(the heapatiadlxx.dllfrees on)._AmdWin— util = max(gfx, mem activity), temp = edge else mem, power =BOARD_POWER(already watts, noscaling), VRAM used =
DedicatedVRAMUsage, total =MemoryInfoX4. Enumerates present discrete cards,deduped by the UDID's
DEV_xxxxcode (each card repeats once per display), integrated GPU skipped.amd_card_count()), not just the display-driving one —Adapter_Gethid asecond idle card. HIP indices and ADL indices are different namespaces and are never mixed.
BUS_SPEEDis the GPU's internal bus and power-saves to Gen4 at idle, so the slot'sgeneration comes from Device Manager (
DEVPKEY_PciDevice_MaxLinkSpeed, one cached PowerShell query keyed byDEV code) and the negotiated width from PMLog
BUS_LANES. Matches HWInfo on this PC: 9070 XT Gen5 x8,R9700 Gen5 x4.
close()releases the PMLog device handle and the ADL context,a finaliser covers readers that go away with the server, and the one-off call sites (
free_vram_mib(),server.gpu_vram_mib()) release theirs. Numbers under Measured.sample()always emitsgpus[]with name,pcie_gen_maxandpcie_widthper card, even for one card.power_limitreturnsfloat(lim)instead of a raw value that could be 0.SETUP behaviour (
setup.py, +200/−33)--yesnever asks; theUnsloth Linux default-on is unchanged).
hip_vision()is now platform-neutral:yes/gpu→ gpu,cpu→ cpu, else none.previous_amd_split()— a re-run with no--gpu/--gpuskeeps the installed config's split (accepts"gpu"as a list or a"0,2"string, newest config wins, keeps the split only while every card is stillpresent and usable).
hip_devices()clearsHIP_VISIBLE_DEVICESfor the probe. A user-set value hid cards and renumberedthe rest, so a saved split "0,2" named a card that was no longer at 2.
--gpusworks — the old "multi-GPU is Linux only" refusal is gone.engine_step()renumbersthe split's cards to HIP numbers after the probe (an integrated Radeon takes HIP 0) and prints what it
settled on.
hip_vision_windows()— for the ready-made zip: run the zip's encoder whenBUILD.jsonsaysvision/vision_src/vision_archsmatch;gpuasked without an encoder built for this arch warns andfalls back to cpu; a stale or missing encoder is recompiled as CPU with MSVC; no compiler offers the winget
Build Tools (~2 GB), and declining leaves images off.
install_msvc_build_tools()— wingetMicrosoft.VisualStudio.2022.BuildToolswith the VCTools workload,asked first.
cmake_build()pip-installs cmake and ninja when they are missing (old installs predaterequirements.txt).--vram-reserve-mibat all, so the enginekeeps its 2560 MiB WDDM floor (bench: add RX 7900 XT results for IQ3_S and IQ3_XXS #1376, [Windows 10][AMD RX 9070 XT][HIP] Strata 0.1.41 loads IQ3_XXS but crashes on every generation request #1709); a written 700 would have defeated it. With a GPU encoder the
reserve is
max(reserve, 3260)= the 2560 floor + the encoder's 700. The 12 GB tip only shows where itapplies.
Multi-GPU enumeration and JSON config
gpunormalised whether it is a list or a"0,2"string, so an old config survives.tools/hip/package_windows.pyrecordsvision: "cpu",vision_src(source hash) andvision_archsinBUILD.json, so SETUP can tell a matching encoder from a stale one..gitignoreadds/strata-*.bak(SETUP's config backups) andbuild-vision-cpu.bat.Vision build and packaging
tools/hip/build_windows.batbuilds a portable CPUstrata-vision.exe(AVX2, static CRT, llama.cpp pinnedby
setup.get_llama_cpp()) into the zip;package_windows.py --visionships it.tools/vision/CMakeLists.txtgainsSTRATA_VISION_HIP(GGML_HIP) for the Linux HIP encoder path insetup.build_vision_hip()— not yet run on hardware, flagged in TEST_REQUESTS.tools/vision/strata_vision.cppalso setsHIP_VISIBLE_DEVICES=-1in CPU mode — the AMD runtime ignoresCUDA_VISIBLE_DEVICES.tools/strata_mcp.pydrops the "hip on Windows" and vision refusals; the MCPstrata_installaccepts thesame vision answers as SETUP (gpu is downgraded to cpu by setup itself when the arch has no encoder).
Monitor UI (
serve/web/)tokens/grid/cache-hit, since-start totals, mmproj, picture cap), and a "Reading N pictures" pill and status
line while an encode runs.
renderGpuCards) when the PC has ≥2 cards; summary Power and PCIe tiles get aGPU:0 …/GPU:1 …line each; the PCIe tile shows each card's own link ("Gen5 x8", "Gen5 x4").app.css/app.jsare cache-busted (?v=3) so an open tab can't keep a stale script.Metrics (
serve/server.py,serve/prometheus.py)Visionrecords starts/stops, per-encode times, cache hits, failures and image tokens;/metricsgains avisionblock,encoding_images, and per-request history rows (images / image tokens / encode ms).strata:vision_images_total,image_tokens_total,encode_seconds_total,encode_failures_total,cache_images,encoder_up,encode_ms_last(absent on a cache hit). Nothing isemitted when the model has no vision.
engine_args()adds--vram-reserve-mib 3260for hip on Windows with a GPU encoder (2560 WDDM floor + 700for the encoder).
gpu_vram_mib()releases the reader it builds per card.Docs
AMD_HIP.md: the ADL2 telemetry paragraph with the B650E measurements, the two-cards-one-model Windowssection, and the Images-on-Windows section (zip encoder, 2.7–2.9 s per 512×512 picture on a 7800X3D, Build
Tools ~2 GB, the 3260 reserve).
TROUBLESHOOTING.md: new entry "SETUP.bat forgets a two-card split" with theHIP_VISIBLE_DEVICESrootcause, how to check it, and the measured before/after probe results.
DETAILS.md: Monitor sources (ADL2/NVML/sysfs, per-slot PCIe), thestrata:vision_*series, the AMDimage-encoder table row, and the Image encoder card paragraph.
MULTI_GPU.md: Windows AMD--gpusline.AI_SETUP.md: the AMD images question.TEST_REQUESTS.md: tworows — Windows AMD
--vision cpureports wanted,--vision gpunever run on hardware.Tests
serve/test_telemetry_adl.py(+118): the ADL reader never raises when ADL is missing, readings are sane(temp 0–120 °C, watts), every card index below
card_countreads, per-card PCIe present, andAdlReaderCleanup—close()is safe and idempotent, and 40 one-offfree_vram_mib()reads do not growthe process handle count (Windows only, skipped where there is no
atiadlxx.dll).tools/test_setup_amd.py: probe ignores a setHIP_VISIBLE_DEVICES; the vision question isplatform-neutral.
tools/test_setup_choices.py: 5 newhip_vision_windowscases — zip encoder used, gpu from zip, gpu fallsback to cpu when the arch is missing, stale
vision_srcrecompiles, no compiler asks then declines.tools/test_setup_unsloth.py:HipImages(Windows asks, yes → cpu encoder with no--vram-reserve-mibinthe config args, default off,
--yesnever asks, Linux Unsloth default stays on) andHipSplit(Windows--gpus 0,2renumbers to [1,2] when the iGPU takes 0, setup-again keeps a list or a "0,2" string, a freshPC stays one card, Linux keeps its split).
serve/test_server.py: the vision instrumentation, and the threeAmdTelemetrytests pinned to the Linuxsysfs reader — they fake an amdgpu tree, so building a real ADL reader here made them depend on the machine
(No data shown for 9070xt on dashboard. #1380).
WebApp.test_page_and_filesnow matchesweb/app.jswith its?v=3cache-bust.serve/test_monitor.py,test_prometheus.py,test_vision_elastic.py: the Monitor card's DOM and thePrometheus series.
tools/test_strata_mcp.py: hip vision cpu/yes/gpu/no accepted on both platforms.Extra Notes
Test machine
Processor") — HIP 1, skipped by the split and by the ADL2 enumeration
Measured on that machine
free_vram_mib(0, amd=True)calls hold theprocess handle count at 197 → 197 now that the reader is released. Keeping the readers gave 197 → 278, about
+2 per call — the same signature crkva measured on a 7900 XTX in telemetry: GPU load, VRAM, temperature and power for AMD cards on Windows (#1380) #1434 (267 → 347). The server's sampler
keeps one reader per card, so the growth showed up on the one-off calls:
free_vram_mib()in the startupretry loop and
gpu_vram_mib()once per card.really does bifurcate, so one aggregate link number would be wrong.
3,647 ms for a 23×12 (276-token) picture, cache hit on repeat.
strata:vision_images_total 4,vision_image_tokens_total 1073,vision_encode_seconds_total 12.767,vision_encode_failures_total 0,vision_cache_images 4,vision_encoder_up 1./metricsalso shows bothgpus[]rows with correct ADL2 values.HIP_VISIBLE_DEVICES="0,2"set: the old probe returned 2 cards numbered 0,1; the fixedprobe returns all 3 (R9700 = HIP 0, 7800X3D iGPU = HIP 1, 9070 XT = HIP 2).
Test suite
python -m unittest discover -s serve -p "test_*.py": 805 tests in 303 s, OK (15 skipped) on this machine.test_telemetry_adl8,test_server17 (WebApp 14 +AmdTelemetry3),test_monitor+test_prometheus+test_vision_elastic29 — all passing.test_setup_amd.py37,test_setup_choices.py52,test_setup_unsloth.py68,test_setup_update.py8,test_setup_sycl.py18 — all OK.AmdTelemetrytests that already failed onmainon this two-card PC now pass; nothing is leftfailing on this machine.
strata-vision.exewere built and then run end to end on this hardware(throwaway build/run scripts, not added to the repo).
The GPU image encoder on Windows (built by hand, not shipped)
The zip ships the CPU encoder and
package_windows.pystampsBUILD.jsonvision: "cpu",vision_archs: []—no published zip can select the GPU encoder yet. A HIP
strata-vision.execan still be built on Windows and runbeside the ready-made engine; verified on this PC (gfx1201):
.rocm-winvenv's ROCm (rocm-sdk.exe path --root), thentools/visionwith-DSTRATA_VISION_HIP=ON -DSTRATA_VISION_CUDA=OFF, ROCm's clang/clang++ as the C/C++ compilers,-DCMAKE_PREFIX_PATH=<rocm>andGPU_TARGETS=gfx1201(AMDGPU_TARGETSis deprecated). The ROCm flags mustride in
CMAKE_CXX_FLAGS(--rocm-path=… --rocm-device-lib-path=…): on Windows ggml-hip forcesCXX_IS_HIPCCand cmake ignoresCMAKE_HIP_FLAGS, so without them the compile fails with "cannot find ROCmdevice library".
engine\BUILD.jsonmust sayvision: "gpu"andvision_archsmust name the card, orhip_vision_windows()warns and falls back to cpu. The config's vision section then carriesgpu: true,max_tokens: 1024and--vram-reserve-mib 3260— SETUP writes all three on a fresh install; re-running overan installed model keeps the old config as-is (the reuse path starts it directly), so changing an installed
model to the GPU encoder means editing the config or re-running with
--setup.engine\rocm\binon the encoder's PATH (the config'slib_dirs), where hipBLAS androcBLAS live;
hip_runtime_beside_execopies only the HIP runtime beside the exes by design. Run from a bareterminal the exe dies in the loader with 0xC0000135 (DLL not found) and prints nothing — prepend
engine\rocm\binto PATH for a standalone test.READY 2560;the Monitor's image card reads "running on the GPU", cap 1,024. Per-picture encode times: not measured yet.
Shipping it would mean building the HIP encoder in
build_windows.batand stampingvision_archsinpackage_windows.py— a separate change, not in this PR.Screenshots
Live from the machine above, model loaded, after real image requests. The PNGs are not committed.
Where this overlaps
Several open threads cover part of this, and they disagree in places. Flagging it rather than adding a sixth
silently:
ADL_POWER = (73, 23, 30)and aclose()after crkva's 7900 XTX validation), Dashboard: GPU load, VRAM, temperature, power and PCIe for AMD cards … #1871 (kaiw1102), serve: an AMD card's load, VRAM, temperature and power on Windows #2273 (YashwantBharaj, rebased ontelemetry: GPU load, VRAM, temperature and power for AMD cards on Windows (#1380) #1434), serve: the Monitor's AMD GPU readings on Windows through ADLX (load, VRAM, temperature, power) #1224 (Annoosha-1, sensor 23 first and a fresh
_Adl2()per call — the pattern telemetry: GPU load, VRAM, temperature and power for AMD cards on Windows (#1380) #1434 was called outfor). This branch prefers sensor 73 (
PMLOG_BOARD_POWER) for the reason crkva gave and releases handles theway telemetry: GPU load, VRAM, temperature and power for AMD cards on Windows (#1380) #1434 does; it reads the slot's generation from Device Manager rather than PMLog
BUS_SPEED, whichpower-saves to Gen4 at idle on this board. Happy to rebase onto whichever lands first, or to port the
SETUP/vision/Monitor parts onto that reader and drop this one.
enumerates through ADL2 and keeps HIP and ADL indices as separate namespaces;
--gpuson Windows is the part[Bug] setup.sh can't setup dual nvidia GPUs #112 asks for.
strata-vision.exe; the zip encoder here is the same thing, shipped by the installer./metricsand the Monitor. Thestrata:vision_*series are newnames and emit nothing when the model has no vision.
Not here
power_limitguard.SETUP still offers it knowingly. (A hand-built Windows HIP encoder ran on gfx1201 — see above — but the zip
still ships the CPU one and no published zip can select a GPU encoder yet.)