Design and Implementation of an Efficient Inference and Serving Engine for Geospatial Foundation Models

A Case Study on Microsoft Aurora · Flash-Aurora

Zhicheng Xu

MS-GIST Capstone · Georgia Institute of Technology

Contents

Outline

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

What are GFMs and what is Aurora

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

aurora-0.25-pretrained CDS ERA5 initial condition
era5_pretrained
Global weather forecasting
aurora-0.25-v1.5 Extended CDS ERA5 initial condition
aurora_v1p5
Weather forecasting with hourly leads
aurora-0.1-finetuned 0.1 degree IFS analysis
hres_0.1
0.1 degree high-resolution weather
aurora-0.4-air-pollution CAMS analysis
cams
Air-quality forecasting
aurora-0.25-wave WeatherBench2 meteorology and MARS wave data
wave
Ocean-wave forecasting
aurora-0.25-finetuned Shared fine-tuned Aurora; WeatherBench2 HRES initial condition
hres_t0_finetuned
HRES-T0 weather forecasting
tc_tracking
Tropical-cyclone track forecasting

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

What Aurora tries to solve

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.

Aurora high-resolution 2-meter temperature forecast animation
High-res 2 m temperature
Aurora nitrogen dioxide air-quality forecast animation
NO₂ air quality
Aurora ocean wave direction forecast animation
Ocean wave direction
Aurora tropical cyclone track forecast animation
Tropical-cyclone tracks

Source: Microsoft Aurora documentation GIFs; Bodnar et al., Nature 2025 [5]; github.com/microsoft/aurora [6].

1 · Background and motivation

Research questions

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:

  1. RQ1 · Easy to use An end-to-end Engine from high-resolution initial conditions to GIS-ready ROI export
  2. RQ2 · Efficiency Custom GPU kernels and tiered mixed precision for Aurora throughput, memory, and numerical trade-offs
  3. RQ3 · Future trend Multi-GPU serving, desktop placement, and a reusable model factory toward unified GFM infrastructure
Stack diagram highlighting the inference and serving infrastructure gap

2 · Architecture

The 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.

  • Models: use published Aurora variants with custom GPU kernels and precision routing.
  • Engine: prepares initial conditions, rolls out forecasts, and exports products.
  • Scheduler: queues complete forecast jobs across GPU workers.

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.

Flash-Aurora nested packages: scheduler, engine, and models

3 · Efficient inference

Custom GPU kernels improve speed and enable finer-grained data-type control

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.

  • Triton [10] fuses window layout and AdaLN, so intermediate tensors need not be materialized
  • CuTe DSL [11] runs short-window attention with 144 tokens per window and tiled Q, K, and V data in shared memory
  • Online softmax accumulates in FP32 without writing the full pairwise attention matrix to global memory
CuTe DSL BF16 and TF32 window attention vs PyTorch SDPA on Blackwell
CuTe DSL Window Attention Benchmarks (NVIDIA RTX PRO 6000 Blackwell)

3 · Efficient inference

End-to-end mixed-precision: faster matrix math where safe

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.

bf16_mixed@fp32 / bf16_mixed@tf32

Hybrid backbone: BF16 attention and MLP paths, TF32 elsewhere; FP32 or TF32 encoder/decoder GEMMs.

tf32@fp32 / tf32@tf32

TF32 backbone GEMMs; FP32 or TF32 Tensor Core GEMMs in the encoder and decoder.

fp32@fp32 / fp32@tf32

Strict FP32 backbone GEMMs; FP32 or TF32 encoder/decoder GEMMs.

CUDA cores versus Tensor Cores: general-purpose parallel work versus specialized matrix multiply-accumulate
Conceptual view, not to scale. Source: NVIDIA Technical Blog.

3 · Efficient inference

How much faster is one forecast step now?

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.

One-step end-to-end forward latency by precision tier across model configurations including Aurora 1.5
One 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

How much numerical precision do we lose

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.

Stacked mean relative error by variable for each model and precision tier
Stacked mean relative error versus the FP32 baseline (precision suite, seed 42)

Preset tokens (era5_pretrained, hres_0.1, ...) are the same ones mapped to published models and tasks on page 2.

3 · Efficient inference

From analysis data to GIS layers

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.

Flash-Aurora workflow: Solve Input Data, Load and Run a Model with optional Scheduler, Export the Predictions

3 · Efficient inference

Access the region, not the planet

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.

Preparing map…

Layers: Flash-Aurora ROI GeoTIFF exports (2t, two steps). Basemap: CARTO / OpenStreetMap.

4 · Efficient serving

Scheduler architecture

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.

Flash-Aurora scheduler: client, job queue, and four GPU workers with models kept resident

4 · Efficient serving

Heterogeneous jobs and asynchronous refill

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.

Four workers each taking one one-step job
One job per worker
Faster workers refill while hres_0.1 is pending
Refill while a slow job is pending

Traces: docs/example_scheduler_distributed_workers.ipynb on 4x NVIDIA RTX PRO 6000 Blackwell.

5 · Affordable AI

Fit large grids on smaller GPUs

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.

Pipeline parallelism placement across two GPUs

5 · Affordable AI

Two desktop GPUs: measured rollout capacity

Pipeline placement on two GPUs in one process. Four-step end-to-end rollout with export; bf16_mixed@fp32.

2x RTX 5090

32 GiB per GPU

era5_pretrained 721 x 1440
Per step
1.319 s
4-step
5.278 s
Peak VRAM
12.9 / 18.2 GiB
hres_0.1 1801 x 3600
Per step
3.626 s
4-step
14.502 s
Peak VRAM
23.6 / 22.9 GiB

2x RTX 4090

24 GiB per GPU

era5_pretrained 721 x 1440
Per step
2.198 s
4-step
8.790 s
Peak VRAM
12.6 / 17.8 GiB
hres_0.1 1801 x 3600
Per step
3.475 s
4-step
13.901 s
Peak VRAM
20.4 / 22.6 GiB

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

Aurora 1.5 as an extensibility test

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).

Aurora 1.5 surface fields at T+6h: 2t, 10m wind, TCWV, cloud cover, MSL, insolation
Surface fields at T+6h (2t, 10 m wind, TCWV, cloud cover, MSL, insolation)

Contributions

What this project delivered

  1. 1. GIS-ready Engine

    A preset-driven workflow connects public-data ingress, accelerated rollout, and NetCDF or GeoTIFF ROI export.

  2. 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. 3. Lower hardware barrier

    Dual-GPU pipeline parallelism reduces peak per-GPU memory by about 40 percent on measured consumer-GPU systems.

  4. 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

What this project establishes

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.

  1. 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.

  2. 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.

  3. 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

Selected references

  1. J. Jakubik et al., "Foundation models for generalist geospatial artificial intelligence," arXiv:2310.18660, 2023.
  2. D. Szwarcman et al., "Prithvi-EO-2.0: A versatile multi-temporal foundation model for Earth observation applications," arXiv:2412.02732, 2024.
  3. C. F. Brown et al., "AlphaEarth Foundations: An embedding field model for accurate and efficient global mapping from sparse label data," arXiv:2507.22291, 2025.
  4. Z. Feng et al., "TESSERA: Temporal embeddings of surface spectra for Earth representation and analysis," arXiv:2506.20380, 2025.
  5. C. Bodnar et al., "A foundation model for the Earth system," Nature, vol. 641, no. 8065, pp. 1180-1187, May 2025, doi: 10.1038/s41586-025-09005-y.
  6. Microsoft, "Aurora," GitHub repository. [Online]. Available: https://github.com/microsoft/aurora
  7. Dao-AILab, "flash-attention" (FlashAttention / FlashAttention-4), GitHub repository. [Online]. Available: https://github.com/Dao-AILab/flash-attention
  8. vLLM Project, "vLLM," GitHub repository. [Online]. Available: https://github.com/vllm-project/vllm
  9. NVIDIA, "Earth2Studio," GitHub repository. [Online]. Available: https://github.com/NVIDIA/earth2studio
  10. Triton contributors, "triton," GitHub repository. [Online]. Available: https://github.com/triton-lang/triton
  11. NVIDIA, "CUTLASS" (CuTe DSL), GitHub repository. [Online]. Available: https://github.com/NVIDIA/cutlass

Thank You

Questions and feedback from GIS practitioners are welcome.