Skip to content

Releases

gpuwm-hex 0.5.0

Choose a tag to compare

@FahrenheitResearch FahrenheitResearch released this 11 Nov 02:01

gpuwm-hex 0.5.0

Requires gpuwm>=3.0.0,<3.1.

New:

  • Runs on gpuwm 3.0, released with it. On the regional, global and hrrrv5 gate cases the MPAS route gives output bit for bit the same as on gpuwm 2.9.13. ArWen-physics runs follow gpuwm 3.0's physics (its changelog), for example its new start for Noah-MP snow layers.
  • Physics defaults are the latest upstream releases. Every pinned version stays selectable by name, and the bitwise proofs run the pins.
  • The RRFS route runs MYNN v6.1 by default (MYNN-EDMF v6.1.1 + MYNN-SFC v6.1.0). --physics config_mynn_version=pinned runs RRFS 44c0849's MYNN, bitwise to native.
  • TEMPO v3.2.5 is the default TEMPO on the RRFS route, with the hail-hyperaware category on. config_tempo_version = 'v3.0.3' runs the RRFS 44c0849 TEMPO.
  • MMM-physics 550b5b4 (WRF v4.8.0) for YSU and the revised MM5 surface layer, with the KIM form-drag option (off by default). mmm_version=a4baf7f runs the MPAS-A v8.4.2 code.
  • KIM orographic drag (MPAS PR #1409) with --physics gwdo_version=kim2026. The v8.4.2 drag stays the default. The KIM option builds its orographic statistics with gpuwm 3.0's static builder.
  • --physics-mode exact runs every pinned scheme (TEMPO v3.0.3, MYNN 44c0849, MMM a4baf7f) unless the run names a version.
  • Pin updates with identical output: UGWP MPAS_20261104, RUC ef5c949, GFL 873b414, rrtmgp-data v1.9.2.

Fixed:

  • The memory check for an hrrrv5 run uses hrrrv5's own measured runs. A 30 km hrrrv5 globe was admitted with about 14 GB less than it uses, on one card and split over two or four.
  • Limited-area runs and hrrrv5 runs load three more kernels from the kernel pack instead of compiling them at every start.
  • ArWen-physics runs load the Grell-Freitas kernel and the engine's other physics kernels from the kernel pack. The Grell-Freitas kernel compiled for about 90 s on one core at every run that uses it, so every move of a storm-following region waited that long.
  • TEMPO picked over an ArWen-physics suite loads its kernels from the kernel pack. It compiled one engine kernel for about 30 s on one core at every run.
  • Two gpuwm-hex global runs started together on an empty cache both get the mesh; one of them used to stop in its mesh stage.
  • A microphysics scheme picked over an ArWen-physics suite (NSSL 2-moment, P3, TEMPO, also TEMPO beside Grell-Freitas) runs: it gets its extra fields in the start file, on every door, and NSSL draws its first reflectivity frame. On gpuwm 2.9.13 these picks stopped before the forecast; they need gpuwm 3.0.
  • TEMPO picked over an ArWen-physics suite steps at 150 s or less. A default step above that takes 150 s, and a longer --dt stops before the run and says why. On the 120 km globe, TEMPO at the mesh's own 600 s step stopped within its first 40 minutes, and at 300 s its rain water was still growing after an hour; at 150 s it ran 6 h with bounded fields. MPAS-A suites that carry TEMPO (hrrrv5) run on the MPAS route and are not affected.
  • pip install "gpuwm-hex[gpu-cu13]" installs gpuwm's own CUDA 13 toolchain with it (NVRTC 13.4.92 today), the one this release was tested on; it used to take NVRTC 13.5.37, which gpuwm 3.0 does not support. [gpu-cu12] pulls gpuwm's [gpu-cu12] the same way.
  • The kernel-pack and physics-resource downloads retry when the release host answers with a temporary error.
  • gpuwm-hex score on a limited-area run scores only observations inside the region.
  • In correct mode, IAU applies every scalar increment the analysis file carries (cloud, rain, ice and graupel numbers, graupel volume, aerosol numbers), not only the moist masses. Exact mode is unchanged.

kernel-packs-v0.5.0

Choose a tag to compare

Prebuilt kernel packs for gpuwm-hex 0.5.0.

gpuwm-hex 0.4.15

Choose a tag to compare

@FahrenheitResearch FahrenheitResearch released this 07 Nov 17:26

gpuwm-hex 0.4.15. Requires gpuwm>=2.9.12,<2.10.

Fixed:

  • A 60 km global run with MPAS physics starts on a 16 GB card. It was refused for memory it does not use.
  • Turning on SST, sea-ice or deep-soil updating with --physics no longer raises the memory price.
  • Shortwave radiation holds about 720 MB less at the 60 km memory peak, with the same results.
  • Killed runs no longer leave their stream handoff files in /dev/shm; the next run clears them.
  • The GFS source carries its dated surface forecast, and S2S runs take SST and sea-ice forcing from any source that has one.
  • S2S products and energy rows run on the MPAS-physics route.
  • An interrupted analysis start is rebuilt on resume, and start-source receipts are written whole.
  • Global mesh-plan receipts are standard JSON: a uniform globe wrote Infinity, which strict JSON readers refuse.

gpuwm-hex 0.4.14

Choose a tag to compare

@FahrenheitResearch FahrenheitResearch released this 06 Nov 22:21

gpuwm-hex 0.4.14. Requires gpuwm>=2.9.12,<2.10.

Fixed:

  • Native MPAS restart files now restart the dynamics on every physics suite. On the default route a restart continues the run that wrote it exactly; with --numerics strict it reproduces native MPAS's own restart.
  • Checkpoint resumes and same-mesh resumes of storm-following regions on MPAS physics continue the run exactly, on one card or several ranks.
  • Several ranks on one card use much less memory: radiation work space is shared between them and the TEMPO tables are held once per card.
  • Memory admission prices MPAS-physics runs from measurements on this release: one member at 120, 60 and 30 km, co-resident members, ranks sharing a card and one rank per card. Shapes that were refused before now start.
  • Same-host ranks no longer grow their memory over a long run.
  • --samehost-ranks threads runs again on both physics routes.
  • Waves run on several ranks and cards with one wave model per run, give the same numbers run to run, keep their state in checkpoints, and runs on one host download the bathymetry once.
  • ArWen-physics runs with waves start on the native global meshes.
  • ArWen-physics runs write the 2-5 km updraft-helicity maximum and draw its maps, on one card, with local time stepping and on several cards.
  • Variable-resolution globes with a coarse background draw their "around the core" map instead of stopping the run.
  • A region run no longer stops now and then with "boundary intermediate digest differs".
  • Runs with observation scoring turned off finish instead of stopping after the forecast.
  • RUC land: frozen-soil runoff matches native MPAS in the last bit.
  • Strict runs refuse TEMPO tables that are not the strict ones, and a named table folder must hold every table.
  • Prebuilt kernel packs cover NVRTC 13.5.37 and 13.4.59, so a fresh [gpu-cu13] install starts without compiling. The RRFS MYNN-EDMF kernel compiles to the same machine code every time.

kernel-packs-v0.4.14

Choose a tag to compare

Pinned kernel packs for gpuwm-hex 0.4.14 (NVRTC 12.9.86, 13.0.88, 13.2.51, 13.4.59, 13.4.92 and 13.5.37).

gpuwm-hex 0.4.13

Choose a tag to compare

@FahrenheitResearch FahrenheitResearch released this 05 Nov 20:06

gpuwm-hex 0.4.13. Requires gpuwm>=2.9.12,<2.10.

Fixed:

  • A fresh gpuwm-hex[gpu-cu13] install loads prebuilt kernels again instead of compiling them for about 100 s: the extra keeps NVRTC below 13.5, which has no pack yet. A 13.5 pack comes in a later release.
  • gpuwm-hex doctor warns when the loaded NVRTC has no prebuilt kernel pack.
  • Storm-following and setup-following runs write the 0-1/0-2/0-3 km updraft-helicity maxima on every segment.
  • The README, the PyPI page and the manual state this release's version, engine range and kernel packs, and the PyPI page's links work.

gpuwm-hex 0.4.12

Choose a tag to compare

@FahrenheitResearch FahrenheitResearch released this 05 Nov 14:22

gpuwm-hex 0.4.12. Requires gpuwm>=2.9.12,<2.10.

New:

  • Regional forecasts start from RRFS v1, with separate boundary sources and cycles.
  • HRDPS and RDPS regional starts, with deep-soil and upper-air donors.
  • Held-Suarez forcing on global meshes (ra_lw_physics = 31).
  • Opt-in hurricane line: cyclone tracking, HAFS starts and storm-following regions.
  • Opt-in wave forecasts, stations and maps.
  • SPPT and SKEB stochastic physics, written from the published method (opt-in).
  • 0-1, 0-2 and 0-3 km updraft helicity maxima in history and on maps.
  • A 10 km global mesh, with parallel download and unpack.
  • An experimental AMD (ROCm/HIP) backend, opt-in. CUDA stays the default.
  • Storm-following regions run on several cards.

Changed:

  • RRFS conus3km transport went from 93.4 ms to 71.5 ms.
  • hrrrv5 with the storm scheme runs at 1.18x the MPAS-physics step, down from 1.60x, and its final pass went from 227 s to 31 s.
  • Less device memory: 120 km MPAS 10.44 to 5.49 GiB, 60 km ArWen 14.95 to 11.96 GiB, an hrrrv5 region 6.49 to 2.86 GiB.
  • Less host memory during mesh preparation and history writes.
  • Sources are prepared and maps finished across more cores, and a region's source preparation runs beside mesh preparation. Sub-area end-of-run maps went from 81.5 s to 13.5 s.
  • Process-rank device memory is priced from its measured whole-run peak, and low-memory forecasts are priced before launch.

Fixed:

  • Four-card MPAS-physics runs start: the process transport links only the ranks that share halo words.
  • 1 km runs split across cards no longer stop at random: each card checks only the columns it owns.
  • rrfs_v2_dev and every column suite without Noah-MP run again, on one card or several.
  • Reflectivity maps include the rain from active cumulus schemes.
  • Coastal water cells take their sea temperature by the WPS SKINTEMP rule.
  • A refused cap mesh is built at another centre and turned to the requested point.
  • Stale run files are recovered, MPAS device memory is checked before startup, and waiting ranks stop when the forecast coordinator fails.
  • Native restarts, checkpoints and history timing are preserved.
  • Runs that write checkpoints no longer write zeros for boundary-layer height, surface heat fluxes and reflectivity in their first frame.
  • --dynamics KEY=VALUE now reaches runs on the MPAS-physics route.
  • A run resumed from a checkpoint keeps its maps' start time, and frames written past the checkpoint are set aside.
  • The 96 -> 3 km zoom globe is priced from its measured peak, so restarts that fit are admitted.
  • Fixes to source soil layers, static culls, field units and worker refusals.

NOAA GSL UGWP is now credited under its Apache-2.0 licence in NOTICE.

kernel-packs-v0.4.12

Choose a tag to compare

Pinned kernel packs for gpuwm-hex 0.4.12 (CUDA 12.9 and 13.4 NVRTC): kernel-pack-cuda12.json, kernel-pack-cuda13.json, asset-release-NOTICE.txt, SHA256SUMS.

engine-bridges-v0.4.12

Choose a tag to compare

Pinned assets for gpuwm-hex 0.4.12: rw_ensbatch, rw_igra2, rw_mpas_convert, rw_mpas_geometry, rw_mpas_lbc, rw_mpas_mesh, rw_mpas_rrfs_connectivity, rw_mpas_rrfs_damping, rw_mpas_rrfs_deformation, rw_mpas_static, rw_mpas_stream, rw_s2s, rw_sfc_series, rw_wrfbatch, asset-release-NOTICE.txt, SHA256SUMS.

gpuwm-hex 0.4.11

Choose a tag to compare

@FahrenheitResearch FahrenheitResearch released this 31 Oct 10:24

gpuwm-hex 0.4.11. Requires gpuwm>=2.9.11,<2.10.

New:

  • hrrrv5 on the 96 -> 3 km zoom globe: gpuwm-hex mesh-plan --global-mesh ... --run --geog ROOT --forecast-arg=--physics-suite=hrrrv5 builds NOAA's RRFS start state and the GSL drag statistics itself. --forecast-arg=--physics=config_convection_scheme=cu_grell_freitas_li adds NOAA GSL's scale-aware Grell-Freitas on the GPU as the labelled variant "hrrrv5 + storm scheme", so the coarse cells keep their convective rain (hrrrv5 itself has no cumulus scheme); it fades out on the 3 km cells.
  • gpuwm-hex forecast|global --wind-farms uswtdb|PATH runs Fitch wind-farm drag and turbine TKE inside MYNN on globes and zoom globes, with per-turbine and per-farm power and hub wind in history (opt-in).
  • hrrrv5 on any region: gpuwm-hex country and gpuwm-hex regional with --forecast-arg=--physics-suite=hrrrv5 start from NOAA's RRFS init (case 7 on the region, case 9 boundaries) from GFS or IFS, on a circle, an ellipse (--ellipse) or a drawn outline (--shape, Shape row or GeoJSON), on one card or several (--samehost-devices 0,1,2,3).

Changed:

  • A static built for hrrrv5 reads ERA5's deep-soil temperature (soiltemp_era5_1deg) instead of NOAA's ISLSCP-I soiltemp_1deg, whose licence is unclear: about 2 K warmer over land on average (docs/rrfs-init.md). --deep-soil-temperature islscp-i selects NOAA's by name. NOAA's own conus3km static is unchanged.
  • Simulated radar during a hex forecast reads its radar columns from each committed state, and its backpressure waits follow the radar consumer's real progress, so radar keeps pace with the run.
  • Hex products keep pace with a fast forecast: live frames are drawn side by side and converted once, a zoom globe's whole-globe view and its context view are converted at their pictures' pixels (no context tiles unless asked), and the frame cache leaves 10 % of its disk free. A whole globe finer than its picture is drawn on the picture's grid, so its renderer's memory no longer grows with the mesh.
  • A zoom globe's export --window global is a stack, each region at the detail the model has there (the sphere at the outer spacing, a lat-lon box per ring, the core on its own box with the usual coordinates), and export --follow writes it beside the forecast. gpuwm-hex regional draws each frame as it lands.
  • Storm-following regions on the MPAS-physics route move about four times faster: the forecast process stays on the card across moves, prepares the next region while the current one runs and hands the state over in memory (about 45 s to about 11 s per move on one RTX 5090). Output is unchanged; --no-resident keeps one process per segment.

Fixed:

  • GFS starts on the Noah land model (the MPAS-physics default) from cycles after 2026-10-28 no longer stop at init ('soil contract does not cover this analysis date'): the cold-soil contract is keyed on the GFS analysis itself (its model, soil layers and land model, read off the donor file) instead of an end date, so an unchanged GFS keeps the soil remap.
  • No case the cold-soil remap cannot serve stops an init any more: a GFS start from a later forecast hour (init-source, regions and moving cases), a land model other than Noah (the ArWen route's Noah-MP, RUC), a missing or late donor, a cycle before GFS v16, a GFS analysis from another land setup, an all-water region and the rest start from the source's interpolated soil, as before 0.4.10, and the init's log and receipt say why. --soil-remap on refuses instead.
  • A limited-area region started from GFS (country and region doors, hourly boundaries) no longer stops at its first boundary hour ('this cold-soil donor row is analysis-only'): only the run's start takes GFS's cold-soil donor, as the regional door already did.
  • RRFS v2 hrrrv5 forecasts take --stream-input invariant=FILE: a registered input stream the run binds is read once at the start instead of being refused as inactive.
  • RRFS v2 hrrrv5 history draws maps again: its aerosol optical depth (aod550) declares CF units '1', so the converter no longer refuses it.
  • gpuwm-hex country --forecast-arg=--physics-suite=hrrrv5 no longer dies as its forecast starts (KeyError 'nscat'), from GFS or IFS.
  • A physics-resource cache that lost RRFS or MPAS tables (a cleaned disk) fetches them again instead of failing on a missing table file.
  • Map titles name the view and the spacing its picture shows ('Core zoom 1-4.1 km', 'Whole globe 1-129 km') instead of the whole mesh's range; --view-label VIEW=TEXT passes a caller's own words.
  • RRFS Grell-Freitas-Li (cu_grell_freitas_li) runs on the GPU-resident route with no native library: it no longer stops at start ('init_convection for GFL / Tiedtke schemes has no ported path'), at its first step ('cached extent conflict for diag_physics.vcpool') or on its momentum carriers ('sub3d_rucuten_p is not allocated'), and its columns run in wide launches instead of 64 at a time.