Skip to content

Experimental "Physics" features

⚠️ This should live in NDSL or GT4Py or DaCe own documentation ⚠️

Summary

Experimental work drops support for gt backends for the forseeable future to allow for quicker iteration

Feature debug numpy dace:cpu dace:gpu test / example
Absolute indexing in K ✅🐞 link
Parametrizable precision
Generic cast to precision
ROUND function
ERF function
Type hinting of temporaries ✅🐞 ✅🐞 ✅🐞 ✅🐞
Variable indexing of data dimensions
Exposing current K level as a scalar
Unrolling for-range loop
Mutable arguments on gtscript.function
Breakpoint injection
Print
2D temporaries
Runtime Interval
Higher dim temporaries
Computation mask
Nested K interval/loop
Field save to NetCDF
Code-flow heatmap

Details

Absolute indexing in K

  • Usage: field.at(K=x, ddim=[y]) with ddim optional
  • Todo:
    • numpy doesn't handle data dimensions
    • Unit tests for data dimensions feature
  • Merge to main: BLOCKED
    • Impossible in gt:X backends without changes to GridTools

Parametrizable precision

  • Usage: literal_floating_point_precision in gt4py.cartesian.config.build_settings OR GT4PY_LITERAL_PRECISION environment variable
  • Todo: Unit test
  • Ready for merge in main

Generic cast to precision

  • Usage: a = int(b) with types i32, i64, f32, f64, int, float
  • TO BE IMPLEMENTED

ROUND & ERF functions

  • Merge to main: READY

Type hinting of temporaries

  • Usage: field: i32 = 0 with types i32, i64, f32, f64
  • ToDo:
    • missing generic int, float
    • unit tests
  • Merge to main: READY

Variable indexing of data dimensions

  • Usage: field[0,0,0][x]
  • ToDo:
    • Fix unit tests
    • numpy might not be working
  • Merge to main: READY

Exposing current K level as scalar

  • Usage: THIS_K as an int
  • ToDo:
    • Do not default to parametrized precision
  • Merge to main: BLOCKED (partial)
    • Merge after parametrizable precision

Unrolling for-range loop

  • Usage: for i in range(x) all operations will be unrolled
  • ToDo: TBD
  • Merge to main: TBD

Mutable arguments on gtscript.function

  • Usage: functions with no return statements have mutable arguments
  • ToDo: TBD
  • Merge to main: TBD

Breakpoint injection

  • TO BE IMPLEMENTED

Print

  • TO BE IMPLEMENTED

2D temporaries

  • TO BE IMPLEMENTED

Runtime Interval

  • TO BE IMPLEMENTED

Higher dim temporaries

  • TO BE IMPLEMENTED

Computation mask

  • TO BE IMPLEMENTED

Nested K interval/loop

  • TO BE IMPLEMENTED

Field save to NetCDF

  • TO BE IMPLEMENTED

Code-flow heatmap

  • TO BE IMPLEMENTED