Windows/CUDA port: thermal gate, storage probe, correct dashboard stats#296
Windows/CUDA port: thermal gate, storage probe, correct dashboard stats#296David2024patton wants to merge 2 commits into
Conversation
|
Thanks for this β the Windows dashboard stats overlap with #278 (hwinfo CPU/cores/RAM via CPUID + |
@ZacharyZcR's workflow, already green on dev (78c77bf): engine + C suite, web build + vitest, python suite, and a real CUDA syntax check. Only the workflow file is cherry-picked here β main's engine code stays at 54cfe56 and nothing else from dev comes along. main is where the checks are worth the most and where they were missing entirely. Includes the two fixes the first run exposed: the pinned action's version table stops at 12.6.2 (12.6.3 failed the install), and `nvcc ... | head -40` took its exit status from head, so the job could never fail. Co-Authored-By: ZacharyZcR <JustVugg#144> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Could you rewrite this against current It's 66 commits behind Windows is now covered by CI on MSYS2/UCRT64, so a rebased version gets tested automatically β which is what this PR most lacked. Also check against #314 (build-config stamp, CUDA_HOME quoting), which may already cover part of your delta. What changed under you, which makes a rewrite cheaper than it sounds:
What would help it land fast: the smallest version that does one thing. A 300β700 line PR touching If you'd rather not, say so and I'll close it with thanks β no hard feelings either way. And if you think I've misjudged and it should go in as-is, push back: I've been wrong twice today already and both times a contributor caught it. |
0901b30 to
8ac9f46
Compare
Engine (c/glm.c), all guarded by #ifdef COLI_CUDA and cross-platform #ifdefs: - NVML thermal heartbeat + thermal_gate() to bleed GPU heat per forward step (SAFE_MODE=0 disables); no-op when NVML is absent. - probe_storage_drive()/storage_bus_is_slow(): Win32 IOCTL + POSIX statvfs disk bus/free-space probe (FORCE_SLOW_DRIVE=1 to bypass). - Win32 hwinfo_emit branch (GetSystemInfo / GlobalMemoryStatusEx / __get_cpuid) so the dashboard works without /proc. Dashboard correctness: - Report RAM and VRAM in binary GiB so 128 GiB / 16 GiB read as 128 / 16 (not decimal 137 / 17). - Show the real GPU model via NVML nvmlDeviceGetName (e.g. RTX 4070 Ti SUPER) instead of a generic label; web panel shows the name and labels the logical-processor count as threads. Server (c/openai_server.py): COLI_EBITS/COLI_DBITS env to pick quant bit-width for 16 GB GPUs; absent preserves upstream 8/8 defaults.
8ac9f46 to
dc5b9e1
Compare
Summary
Windows + CUDA portability pass so the engine and web dashboard run correctly on Windows with an NVIDIA GPU, plus a couple of small correctness fixes. Every change is guarded by
#ifdef COLI_CUDAand cross-platform#ifdefs, so Linux/CPU behavior is unchanged.Changes
Engine (
c/glm.c)thermal_gate()β a background thread samples GPU temperature (dynamically loadednvml.dll/libnvidia-ml.so) and applies a proportional per-forward pause to bleed heat under sustained load.SAFE_MODE=0disables it; if NVML is absent the engine proceeds normally.probe_storage_drive()/storage_bus_is_slow()check free space and disk bus type via Win32IOCTL_STORAGE_QUERY_PROPERTYand POSIXstatvfs.FORCE_SLOW_DRIVE=1bypasses.hwinfo_emitbranch β cores/RAM/CPU brand viaGetSystemInfo/GlobalMemoryStatusEx/__get_cpuid, so the dashboard works without/proc.Dashboard correctness
128/16instead of decimal137/17β matches the spec-sheet convention users expect.nvmlDeviceGetName(e.g.NVIDIA GeForce RTX 4070 Ti SUPER) instead of a generic label. The web panel now displays the model name and labels the logical-processor count as threads.Server (
c/openai_server.py)COLI_EBITS/COLI_DBITSenv vars to select quant bit-width (needed for the 4-bit config on 16 GB GPUs). Absent β engine defaults (8/8), i.e. upstream behavior preserved.Testing
coli_cuda.dllunchanged.COLI_CUDA=1 CUDA_DENSE=1 CUDA_EXPERT_GB=6 RAM_GB=110, 4-bit) with the web UI;/healthreportsram_total_gb 127.7,vram_total_gb 16.0,gpu "NVIDIA GeForce RTX 4070 Ti SUPER", coherent generation, thermal + storage probes firing.