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 | |||||
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])
withddim
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
- Impossible in
Parametrizable precision
- Usage:
literal_floating_point_precision
ingt4py.cartesian.config.build_settings
ORGT4PY_LITERAL_PRECISION
environment variable - Todo: Unit test
- Ready for merge in
main
Generic cast to precision
- Usage:
a = int(b)
with typesi32
,i64
,f32
,f64
,int
,float
- TO BE IMPLEMENTED
ROUND & ERF functions
- Merge to
main
: READY
Type hinting of temporaries
- Usage:
field: i32 = 0
with typesi32
,i64
,f32
,f64
- ToDo:
- missing generic
int
,float
- unit tests
- missing generic
- 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 anint
- 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
- 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