Experimental "Physics" features
⚠️ This should live in NDSL or GT4Py or DaCe own documentation ⚠️
Summary
Experimental work drops support for gt backends for the foreseeable 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])withddimoptional - Todo:
numpydoesn't handle data dimensions- Unit tests for data dimensions feature
- Merge to
main: BLOCKED- Impossible in
gt:Xbackends without changes to GridTools
- Impossible in
Parametrizable precision
- Usage:
literal_floating_point_precisioningt4py.cartesian.config.build_settingsORGT4PY_LITERAL_PRECISIONenvironment 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 = 0with 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
numpymight not be working
- Merge to
main: READY
Exposing current K level as scalar
- Usage:
THIS_Kas 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