Skip to content

gpuwm-hex 0.3.3

Choose a tag to compare

@FahrenheitResearch FahrenheitResearch released this 29 Sep 21:40
· 14 commits to main since this release

Requires gpuwm 2.8.0 (gpuwm>=2.8.0,<2.8.1).

New

  • gpuwm-hex forecast runs on any NVIDIA card NVRTC can compile its kernels for: compute capability 7.5 (Turing) and newer on CUDA 13. This is the default, with no flag.
  • sm_89 (RTX 40 series, L40S) holds an anchor: the numerical contract measured on an RTX 4090 against sm_120, 123 records identical, with two named deviations. sm_86 and sm_89 hold anchors, sm_120 is the proven contract floor, and any other card runs unanchored.
  • The preflight prints one line per card: anchored, with the evidence pin, or unanchored. Every receipt records the compute capability and the same status.
  • On an unanchored card the forecast door measures the numeric route in one small compile and launch before the run, and records it.
  • gpuwm-hex doctor names the card, its compute capability and its anchor status.

Fixed

  • A card whose architecture held no anchor was refused. gpuwm-hex forecast now refuses a card only for the reasons below.
  • The forecast driver, the x4 proof harness and sixteen tools no longer pin sm_120, which refused sm_121 and every newer part.
  • gpuwm-hex render refused every frame with "rw_wrfbatch produced no catalog rows" on gpuwm 2.8.0.
  • Every forecast's hour-0 frame published q2 = 0 and psfc = 100000 Pa in every cell, so the hour-0 2 m dewpoint map was drawn from zero humidity. The hour-0 frame now carries the start file's 2 m humidity (or the lowest model level's, bounded to saturation) and the model's own surface pressure. Later frames are unchanged.
  • The tests find the package by its import name, so they hold in any layout it is installed in.

Still refused

  • A card NVRTC cannot compile for (below compute capability 7.5 on CUDA 13): no kernel can be built for it.
  • An unanchored card whose ordinary FP32 or FP64 arithmetic is not IEEE 754: every number the run produced would be wrong.
  • A mesh whose predicted footprint does not fit the card's free memory: the run could not allocate it. The refusal names the shortfall and the registered meshes that fit.
  • The two FTZ instruments and two tools held by a recorded byte pin refuse a part newer than sm_120: changing their bytes would lapse the pin.
  • tools/run_cuda_v841_forecast_2gpu.py (sdist only, no door) refuses below compute capability 12.0: two-GPU runs are not a supported path in this release.