bf16_mixed@fp32 / bf16_mixed@tf32
Hybrid backbone: BF16 attention and MLP paths, TF32 elsewhere; FP32 or TF32 encoder/decoder GEMMs.
A Case Study on Microsoft Aurora · Flash-Aurora
Zhicheng Xu
MS-GIST Capstone · Georgia Institute of Technology
Contents
Click a section to jump. The narrative moves from background through efficient inference and serving, then affordable deployment and maintainability on Aurora.
1 · Background and motivation
Geospatial foundation models (GFMs) now span several modalities. Prithvi-EO learns representations from multi-temporal remote-sensing imagery [1], [2]. Google AlphaEarth Foundations [3] and Cambridge TESSERA [4] encode geographic information into reusable embedding fields. Aurora [5], [6] 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 and motivation
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 [5]; github.com/microsoft/aurora [6].
1 · Background and motivation
LLM stacks already ship FlashAttention [7] and vLLM [8]; weather AI has Earth2Studio [9]. GFMs like Aurora still lack a dedicated inference and serving path for GIS practice. This project asks:
2 · 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.
Flash-Aurora is not a new GFM. It extends the published Aurora family with inference and serving infrastructure. The packages nest like an egg. Read from inside out: Models are the yolk that run the forward path; Engine is the white that owns the forecast workflow; Scheduler is the shell that manages deployment.
3 · Efficient inference
The Swin3D backbone is a major forward-pass cost. Custom GPU kernels built with Triton [10] fuse window layout and AdaLN, while CuTe DSL [11] replaces short-window attention on production tiers. They avoid repeatedly reading and writing temporary data, while letting us choose data types at a finer grain for each compute step.
3 · Efficient inference
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.
3 · Efficient inference
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.
3 · Efficient inference
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.
3 · Efficient inference
Three linked stages: solve the inputs, load and run a model, then export predictions. Dashed parts are optional; for simple one-model tasks you do not need to launch the Scheduler.
3 · Efficient inference
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.
4 · Efficient 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.
4 · Efficient 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.
5 · 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.
5 · 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.
6 · Towards a unified inference infrastructure
Day-one support shows that a closely related Aurora variant can
reuse the Engine, source profiles, egress, precision routing, and
much of the acceleration path. It does not demonstrate a general
runtime for unrelated GFMs. Broader unification remains a design
direction that requires standardized checkpoint, source, and
output contracts. Run output from
docs/example_aurora_v1p5.ipynb
(ERA5 IC, 2023-01-01).
Contributions
1. GIS-ready Engine
A preset-driven workflow connects public-data ingress, accelerated rollout, and NetCDF or GeoTIFF ROI export.
2. Efficient inference
Custom GPU kernels and mixed-precision routing deliver about 3.0x to 3.6x single-step forward speedup within project tolerances.
3. Lower hardware barrier
Dual-GPU pipeline parallelism reduces peak per-GPU memory by about 40 percent on measured consumer-GPU systems.
4. A prototype of model factory
One registry hosts published Aurora variants and attaches shared kernels. Day-one support for Aurora 1.5 shows related models can reuse the same acceleration path without a second code fork.
Conclusions
Geospatial foundation models are advancing faster than the software that makes them usable. Flash-Aurora shows that an inference and serving engine can close much of that gap for Aurora-class forecasts in GIS practice.
GFM usability is an infrastructure problem
Checkpoints alone are not enough. GIS users need a complete path from public initial conditions through accelerated rollout to map-ready NetCDF and GeoTIFF products, including regional ROI.
Efficient computing makes GFMs more affordable and accessible
Custom GPU kernels, mixed precision, dual-GPU placement, and job-level scheduling reduce latency and memory barriers on workstation hardware. Cold-start data and host-side export still dominate many end-to-end runs, so kernels alone are not enough.
A unified infrastructure for GFMs is worth investing in
One Engine and model factory can reuse acceleration and serving across related Aurora variants, as shown by day-one support for Aurora 1.5. Broader unification across unrelated GFMs still needs shared contracts for checkpoints, sources, and GIS-ready outputs.
References
Questions and feedback from GIS practitioners are welcome.