Skip to content

Batch normalization, more concurrency, & NAG compiler support

Compare
Choose a tag to compare
@rouson rouson released this 04 Apr 21:36
· 212 commits to main since this release
f572e1d

This release adds

  • A tensor_range_t type that πŸ§‘β€πŸŒΎ 🌱
    • Encapsulates input and output tensor component minima and maxima,
    • Provides type-bound map_to_training_range and map_from_training_range procedures for mapping tensors to and from the unit interval [0,1], and 🀺
    • Provides a type-bound in_range procedure that users can employ to check whether inference input or output data involve extrapolation beyond the respective ranges employed in training.
  • BREAKING CHANGE: the network JSON file format has been updated to include input_range and output_range objects. The JSON file reader in this release may fail to read or write network files that are written or read by older versions of Inference-Engine. πŸš’ πŸ—„οΈ πŸ“‚
  • Automatic use of the aforementioned mapping capability during inference. 🧭
  • Enhanced concurrency to improve performance: 🐎
    • Additional use of do concurrent in the training algorithm and πŸš„ πŸš‹
    • Enabling building with OpenMP in the setup.sh script. πŸ—οΈ πŸ‘·β€β™€οΈ
  • Additional compiler support: this is the first release that builds with the NAG Fortran compiler starting with compiler Build 7202.

What's Changed

  • Simplify app: rm redundant procedures by @rouson in #102
  • Concurrent inference example by @rouson in #103
  • Exploit additional concurrency in the training algorithm by @rouson in #105
  • feat(example): add nested do-loop inferences by @rouson in #106
  • chore(examples): match program names to file names by @rouson in #109
  • feat(infer): allow non-type-bound invocations by @rouson in #110
  • doc(README): minimum gfortran version 13 by @rouson in #111
  • Add new fpm subproject icar-trainer by @ktras in #108
  • Enable OpenMP in setup script & work around related compiler bug by @rouson in #114
  • fix(run-fpm.sh): revert to copying header into build dir by @rouson in #115
  • Remove module keyword from abstract interface by @ktras in #116
  • Compute & output tensor histograms in columnar format & add gnuplot script by @rouson in #118
  • Bugfixes for nag by @ktras in #119
  • fix(examples): .f90->.F90 to preprocess files by @rouson in #121
  • Get beyond one type of Intel bugs by @ktras in #120
  • Nagfor workaround by @rouson in #122
  • chore(test): rm nagfor compiler workaround by @rouson in #129
  • Workaround intel bug by @ktras in #128
  • doc(README): add compilers in testing instructions by @rouson in #130
  • build(fpm.toml): increment dependency versions by @rouson in #131
  • More robust Adam optimizer test by @rouson in #134
  • Ifx workarounds + train longer in Adam test to pass with nagfor by @rouson in #135
  • Store tensor ranges by @rouson in #137
  • build(random_init): rm final nagfor workaround by @rouson in #136
  • Feature: Add input/output tensor component ranges to network files by @rouson in #138
  • Feature: map input to unit range & output tensors from unit range in inference_engine_t infer procedure by @rouson in #139
  • Normalize in training by @rouson in #140
  • Fix training restarts by @rouson in #141

New Contributors

Full Changelog: 0.10.0...0.11.0