[go: nahoru, domu]

Skip to content

Fastor V0.6.3

Compare
Choose a tag to compare
@romeric romeric released this 07 Jun 02:09
· 66 commits to master since this release

Fastor V0.6.3 is another incremental change over V0.6 release that introduced a significant overhaul in Fastor's internal design and exposed API. This release includes mainly internal changes

New features and improvements

  1. Continuous integration support via Travis CI on Linux. We test against GCC-5 to GCC-latest and default Clang using both scalar and SIMD implementations
  2. Continuous integration support via Appveyor CI for MSVC builds on Windows. We test against Visual Studio 2019 under debug for now. Our test cases take excessively long under release and eventually time out although they build fine
  3. Unit test are now built using CMake instead of raw Makefiles
  4. lut_inverse and ut_inverse have been renamed to tinverse taking UpLoType similar to linear algebra computation types #87
  5. Single tensor expression einsum for inner and permuted inner product of a single tensor expression #80
  6. Explicit einsum by allowing the user to specify the shape of the tensor contraction output. einsum now can permute and can deal with inner and permuted inner products of tensors and tensor expressions #91
  7. A new permute function that closely resembles NumPy's permute option and implements contiguous writes (instead of contiguous reads) which results in about 15-20% performance improvement. This function is not identical to permutation
  8. All remaining mathematical functions are now implemented - cbrt, exp2/expm1, log10/log2/log1p, asinh/acosh/atanh/atan2, erf/lgamma/tgamma/hypot, round/floor/ceil, min/max etc. Where applicable SIMD versions of these are implemented. The SIMD math layer has been cleaned up and reworked
  9. Element-wise unary boolean operators !(Expression), isinf(Expression), isnan(Expression) and isfinite(Expression) are implemented #90
  10. Element-wise binary math function min(a,b)/max(a,b), pow/hypot/atan2 are now available
  11. Fastor now uses alignas instead of compiler specific macros for memory alignment #98
  12. Fastor specific and user controllable macros are now moved to config.h and macros.h under config folder previously named commons #58

Bug fixes

  1. Bug fix in expression binding policy that resulted in segfaults #95
  2. Fix for assigning cv-qualified TensorMap to Tensor #94 by @feltech
  3. Detect the correct SIMD type for cv-qualified tensors #99
  4. Bug fix for nested boolean expressions such as !isfinite(Expression) or !(a>b) #93
  5. Fix overflow in boolean views #100
  6. Fix detecting the correct language standard under MSVC 7592ea7
  7. Fix regression in abstract permutation #96