What's Changed
LFRic and PSyAD
- Much renaming and moving of LFRic-related classes from 'dyn' to 'LFRic';
- PSy-layer generation now creates array pointers for use as kernel arguments (required for GPU compilation);
- Bug fix for missing maps in
enter data
directive; - Bug fixes for LFRic dependency analysis;
- PSyKE: use proper NetCDF variable names for array of fields;
- Metadata support for multi-precision kernels;
- Bug fix for PSy-layer generation involving CMA operators;
- All LFRic built-ins are now generated using PSyIR and lowering;
- Precision-map values moved to configuration file;
- New real-to-real conversion built-in;
- Generated PSyAD test harness now uses LFRic logging API;
- Bug fix for
setop_random
kernel.
NEMO
- Support for OpenMP tasking transformation and directive;
- Supported added for OMP/ACC Atomics and OMP Simd directives;
- Bug fix for
VERIFY
intrinsic; - Fix
Ref2ArrayRangeTrans
bug withALLOCATE
statements; - Addition of NEMO OpenACC loops transformation script;
NemoKern
node removed;maxval2loop
and atomics used to parallelise NEMOstpctl.f90
;- Bug fix for
NemoOuterArrayRange2LoopTrans
; - Bug fix for
process_nemo.py
script: ensure-I
flags are aggregated.
PSyIR Improvements
- Add
Node.siblings
property; - Add
depth
kwarg toNode.walk
; - Add
Node.get_sibling_lists
method; Node.origin_string
method to retrieve original filename and line number information;- Improvements to
ACCRoutineTrans.validate()
; - Improvements to
maxval
-,minval
- andsum
-to-code transformations; - Allow PSyIR backend consistency checks to be disabled;
- Improvements to
InlineTrans
andLoopFusionTrans
; - Support for querying the datatype of a unary/binary operation;
UnknownType
renamed toUnsupportedType
andDeferredType
toUnresolvedType
;same_range
functionality moved toArrayMixin
plus other improvements.
Fortran PSyIR Frontend
- Add support for
SAVE
statement andDO CONCURRENT
; - Put WHEREs containing reductions into
CodeBlocks
and fix non-unity lower-bound bug; - Bug fixes for handling of Fortran types;
- Catch unsupported statements in
implicit-part
of parse tree.
Full Changelog: 2.4.0...2.5.0