Skip to content

Release 2.5.0

Latest
Compare
Choose a tag to compare
@arporter arporter released this 14 Feb 13:11
· 580 commits to master since this release
dadffca

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 with ALLOCATE statements;
  • Addition of NEMO OpenACC loops transformation script;
  • NemoKern node removed;
  • maxval2loop and atomics used to parallelise NEMO stpctl.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 to Node.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- and sum-to-code transformations;
  • Allow PSyIR backend consistency checks to be disabled;
  • Improvements to InlineTrans and LoopFusionTrans;
  • Support for querying the datatype of a unary/binary operation;
  • UnknownType renamed to UnsupportedType and DeferredType to UnresolvedType;
  • same_range functionality moved to ArrayMixin plus other improvements.

Fortran PSyIR Frontend

  • Add support for SAVE statement and DO 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