bf16_mixed@fp32 / bf16_mixed@tf32
Hybrid backbone: BF16 attention and MLP paths, TF32 elsewhere; FP32 or TF32 encoder/decoder GEMMs.
Zhicheng Xu
MS-GIST, Georgia Institute of Technology
1 · Background
Geospatial foundation models (GFMs) now span several modalities. Prithvi-EO learns representations from multi-temporal remote-sensing imagery [8], [9]. Google AlphaEarth Foundations [10] and Cambridge TESSERA [11] encode geographic information into reusable embedding fields. Aurora [1], [2] is another GFM approach: a deep learning model that takes an initial condition and forecasts future Earth-system fields, including weather, air quality, and waves. Flash-Aurora accelerates that inference and export path.
Published model or fine-tune
Flash-Aurora preset token
Task
era5_pretrainedaurora_v1p5hres_0.1camswavehres_t0_finetunedtc_tracking
hres_t0_finetuned and tc_tracking share
the same Aurora fine-tuned variant and ingress. The tracking preset
selects a different synoptic initial condition and runs the
cyclone-tracking workflow.
1 · Background
Official Microsoft Aurora demos across weather, air quality, waves, and tropical-cyclone tracking - examples of outputs that Flash-Aurora can export as GIS-ready layers.
Source: Microsoft Aurora documentation GIFs; Bodnar et al., Nature 2025 [1]; github.com/microsoft/aurora [2].
2 · Motivation
Aurora workflows share one job shape: build an initial condition, roll it forward, and export analysis-ready rasters. Applications need that path to be fast and easy to operate. LLM stacks already ship FlashAttention [4] and vLLM [5]; weather AI has Earth2Studio [3]. GFMs still lack a dedicated inference and serving stack.
Flash-Aurora is the inference and serving layer: it bridges research checkpoints to GIS-ready forecast products.
3 · Architecture
Three nested packages separate deployment, forecast execution, and model computation. The same Engine can run directly in a process or inside a Scheduler worker.
Read the diagram from outside in: Scheduler manages deployment; Engine owns the forecast workflow; Models execute the forward path.
flash_aurora
flash_aurora.scheduler
Wraps engine instances in long-lived GPU workers
flash_aurora.engine
Coordinates model ingress, runtime, and egress
flash_aurora.models
Forecast forward path and kernel dispatch
inference_precision tiersThe engine can run directly in a process or inside a scheduler worker; the scheduler queues whole jobs rather than splitting a single forward pass among workers.
4 · Compute
The Swin3D backbone is a major forward-pass cost. Triton [6] fuses window layout and AdaLN, while CuTe DSL [7] replaces the short-window attention kernel on production tiers. Both reduce intermediate reads and writes to GPU global memory.
5 · Mixed precision
Tiers use backbone@encoder_decoder. The left token
selects backbone matrix-multiply precision; the right selects
encoder/decoder matrix-multiply precision. These are compute
policies, not a conversion of stored model weights. Lower-precision
Tensor Core matrix operations provide higher throughput than strict
FP32 in the heavy backbone, while the encoder/decoder can retain
FP32 where a stricter numerical path is needed.
Hybrid backbone: BF16 attention and MLP paths, TF32 elsewhere; FP32 or TF32 encoder/decoder GEMMs.
TF32 backbone GEMMs; FP32 or TF32 Tensor Core GEMMs in the encoder and decoder.
Strict FP32 backbone GEMMs; FP32 or TF32 encoder/decoder GEMMs.
CUDA cores
Flexible arithmetic, logic, and control flow for many kinds of GPU code.
Tensor Cores
Fixed hardware paths that accelerate the dense matrix operations used by neural networks.
5 · Mixed precision
Measured latency for one model.forward call, or one
rollout step, across presets and precision tiers. The tier-isolated
benchmark warms the model first, then compares compute only: it
excludes data download and GIS export.
model.forward step after warmup (NVIDIA RTX PRO 6000 Blackwell)
Preset tokens (era5_pretrained, hres_0.1, ...)
are the same ones mapped to published models and tasks on page 2.
5 · Mixed precision
Stacked per-variable mean relative error versus the PyTorch FP32 baseline (seed 42). Each segment is one output field; shorter stacks mean less aggregate drift. PyTorch autocast is a comparison baseline, not a quality threshold; it exceeds tolerance for some variables.
Preset tokens (era5_pretrained, hres_0.1, ...)
are the same ones mapped to published models and tasks on page 2.
6 · Engine
The Engine hides Aurora operational detail behind presets. Pick a preset, download or cache initial conditions, run rollout, and export analysis-ready rasters - including optional regional ROI clips.
Preset-aware ingress from CDS, ADS, WeatherBench2, or ECMWF Open Data GRIB; build and cache the initial condition.
Load checkpoint, apply precision tier, and run autoregressive rollout on the shared Engine spine.
Write NetCDF or GeoTIFF. Create ROI masks from a bounding box, shapefile, raster, or GeoJSON and ship regions, not the whole planet.
6 · Engine
The Engine is the primary data path: build an initial condition, run the forecast, then export products. The Scheduler is an optional, parallel deployment route that sends the same complete forecast job to a matching GPU worker.
Initial-condition ingress
Build and validate an Aurora analysis batch
Primary path: direct Engine (Scheduler bypassed)
Engine
One preparation stage, followed by one GPU placement choice and one autoregressive rollout
Optional service path: Scheduler before Engine
Scheduler
Control plane for complete forecast requests, not a model stage
Egress and export options
Choose variables, format, CRS, and an optional region of interest
6 · Engine
ROI masks accept bounds, shapefiles, rasters, or GeoJSON. Each forecast step makes one device-to-host copy, then applies every mask on the CPU and writes regional GeoTIFFs. ROI reduces disk and export work; it does not reduce the global GPU forecast computation.
2 m temperature (K) 250 K 310 K
Preparing map…
Layers: Flash-Aurora ROI GeoTIFF exports (2t, two
steps). Basemap: CARTO / OpenStreetMap.
7 · Serving
Clients submit whole forecast jobs to a coordinator. Long-lived workers keep models resident on a primary GPU and execute jobs sequentially. This is job-level scheduling, not tensor parallelism; optional pipeline parallelism is a separate in-process Engine mode.
A worker is bound to one preset and normally one GPU. A pipeline worker is the exception: one process can reserve multiple GPUs for one model.
7 · Serving
Worker-utilization traces: first assignment, then refill while a
slower hres_0.1 job is still pending. A completed worker
can accept its next queued job while another GPU remains busy.
Traces: docs/example_scheduler_distributed_workers.ipynb
on 4x NVIDIA RTX PRO 6000 Blackwell.
8 · Affordable AI
For supported Aurora models, pipeline parallelism keeps one model in one process but places the encoder, backbone, and decoder on separate GPUs. It can avoid requiring one high-VRAM GPU for the entire model.
The trade-off is explicit: more GPU-to-GPU transfers and coordination, but a lower per-GPU VRAM requirement for the same forecast.
8 · Affordable AI
Pipeline placement on two GPUs in one process. Four-step end-to-end
rollout with export; bf16_mixed@fp32.
32 GiB per GPU
24 GiB per GPU
Peak VRAM is GPU 0 / GPU 1. Different hosts, so figures validate capacity rather than rank GPU speed. Preset tokens: page 2.
9 · Future models
The Engine selects Aurora 1.5 through a preset and its dedicated
model and rollout path, while reusing the same ingress, egress,
and inference-precision interface. Run output from
docs/example_aurora_v1p5.ipynb
(ERA5 IC, 2023-01-01).
References
Feedback from GIS professionals is especially valuable to improve the software!