Skip to content

Releases: diku-dk/futhark

nightly

23 Apr 08:09
483fd92
Compare
Choose a tag to compare
nightly Pre-release
Pre-release

Commits

  • 35a42dd: Onwards! (Troels Henriksen)
  • 483fd92: Improve simplification of reshape/rearrange combinations (#2255) (Troels Henriksen) #2255

0.25.30

22 Apr 22:55
Compare
Choose a tag to compare

Added

  • New math functions: f16.rsqrt, f32.rsqrt, f64.rsqrt.

  • New math functions: cospi, sinpi, tanpi, acospi, asinpi,
    atanpi, atan2pi, in each of the f16/f32/f64 modules. (#2243)

  • Slight improvements in the ability of the fusion engine to fuse
    across map nests separated by reshape operations. Only works if
    the innermost return type is purely scalar.

  • futhark pkg now allows underscores in package paths.

Fixed

  • The interpreter no longer crashes when passing a sum-typed value
    into AD, but it is unlikely to produce a usable result (#2238).

  • The partial derivatives of comparisons are now always zero.
    Previously we had some code that made an attempt at giving these
    another interpretation, but it was never mathematically sound, not
    useful, and sometimes buggy. (#2239).

  • Out-of-bounds reads in GPU backends when transposing a great many
    matrices in parallel (#2241).

  • vjp in the interpreter is now asymptotically efficient (#2187,
    #2240). Work by Marcus Jensen.

  • The interpreter did not handle open correctly.

  • Incorrect handling of some size inference edge cases during
    monomorphisation (#2252).

  • Incorrect registration of entry point types when mixing type
    abbreviations and arrays (#2253).

  • Reverse mode AD now handles sequential streams. (#2256)

0.25.29

22 Mar 22:08
Compare
Choose a tag to compare

Fixed

  • AD would in some cases produce code that would cause a compiler
    crash (#2228).

  • Slight error in the definition of the partial derivatives for the
    ** operator could cause NaNs in the interpreter when using
    forward-mode AD (#2229).

  • The magical machinery for inferring external API types did not
    handle arrays with uniqueness annotations consistently, resulting in
    incompatible entry point types being generated, leading to a
    compiler crash. (#2231)

  • A simplification rule for array slices would in some cases produce
    type-incorrect code. (#2232)

  • A bug in the defunctionaliser could cause a compiler crash in code
    that used both higher order functions and size expressions in clever
    ways (#2234).

  • Fusion could crash after AD in some circumstances (#2236).

0.25.28

07 Mar 20:32
Compare
Choose a tag to compare

Added

Removed

Changed

Fixed

  • Compiler crash for intrablock scatters that write to
    multidimensional arrays. (#2218)

  • Handling of size expressions in abstract types in the interpreter (#2222).

  • GPU code generation of segmented reductions with array operands. (#2227)

  • Server-mode timing is now done with a monotonic clock.

  • futhark test now respects notest, similar to nobench for futhark bench.

0.25.27

05 Feb 12:20
Compare
Choose a tag to compare

Added

  • Improved reverse-mode AD of scan with complicated operators. Work
    by Peter Adema and Sophus Valentin Willumsgaard.

Fixed

  • futhark eval: any errors in the provided .fut file would cause a
    "file not found" error message.

  • Handling of module-dependent size expressions in type abbreviations
    (#2209).

  • A let-bound size would mistakenly be in scope of the bound
    expression (#2210).

  • An overzealous floating-point simplification rule.

  • Corrected AD of x**y where x==0 (#2216).

  • futhark fmt: correct file name in parse errors.

  • A bug in the "sink" optimisation pass could cause compiler crashes.

  • Compile errors with newer versions of ispc.

0.25.26

14 Jan 16:04
Compare
Choose a tag to compare

Fixed

  • Some Windows compatibility quirks (#2200, #2201).

  • futhark pkg: fixed parsing of Git timestamps in Z time zone.

  • GPU backends did not handle array constants correctly in some cases.

  • futhark fmt: do not throw away doc comments for local
    definitions.

  • futhark fmt: improve formatting of value specs.

  • futhark fmt: add --check option.

0.25.25

18 Dec 14:08
Compare
Choose a tag to compare

Added

  • Improvements to futhark fmt.

Fixed

  • Sizes that go out of scope due to use of higher order functions will
    now work in more cases by adding existentials. (#2193)

  • Tracing inside AD operators with the interpreter now prints values
    properly.

  • Compiled and interpreted code now have same treatment of inclusive
    ranges with start==end and negative step size, e.g. 1..0...1
    produces [1] rather than an invalid range error.

  • Inconsistent handling of types in lambda lifting (#2197).

  • Invalid primal results from vjp2 in interpreter (#2199).

0.25.24

11 Nov 14:54
Compare
Choose a tag to compare

Added

  • futhark doc now produces better (and stable) anchor IDs.

  • futhark profile now supports multiple JSON files.

  • futhark fmt, by William Due and Therese Lyngby.

  • Lambdas can now be passed as the last argument to a function application.

Fixed

  • Negation of floating-point positive zero now produces a negative
    zero.

  • Necessary inlining of functions used inside AD constructs.

  • A compile time regression for programs that used higher order
    functions very aggressively.

  • Uniqueness bug related to slice simplification.

0.25.23

15 Oct 08:33
Compare
Choose a tag to compare

Added

  • Trailing commas are now allowed for arrays, records, and tuples in
    the textual value format and in FutharkScript.

  • Faster floating-point atomics with OpenCL backend on AMD and NVIDIA
    GPUs. This affects histogram workloads.

  • AD is now supported by the interpreter (thanks to Marcus Jensen).

Fixed

  • Some instances of invalid copy removal. (Again.)

  • An issue related to entry points with nontrivial sizes in their
    arguments, where the entry points were also used as normal functions
    elsewhere. (#2184)

0.25.22

10 Sep 08:15
Compare
Choose a tag to compare

Added

  • futhark script now supports an -f option.

  • futhark script now supports the builtin procedure $store.

Removed

Changed

Fixed

  • An error in tuning file validation.

  • Constant folding for loops that produce floating point results could
    result in different numerical behaviour.

  • Compiler crash in memory short circuiting (#2176).