Releases: diku-dk/futhark
nightly
0.25.30
Added
-
New math functions:
f16.rsqrt
,f32.rsqrt
,f64.rsqrt
. -
New math functions:
cospi
,sinpi
,tanpi
,acospi
,asinpi
,
atanpi
,atan2pi
, in each of thef16
/f32
/f64
modules. (#2243) -
Slight improvements in the ability of the fusion engine to fuse
acrossmap
nests separated byreshape
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
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
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 respectsnotest
, similar tonobench
forfuthark bench
.
0.25.27
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
wherex==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
Fixed
-
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 forlocal
definitions. -
futhark fmt
: improve formatting of value specs. -
futhark fmt
: add--check
option.
0.25.25
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
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
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
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).