Skip to content

Releases: joelberkeley/spidr

C XLA release 0.0.10

27 Jan 01:27
bded472
Compare
Choose a tag to compare

C XLA release 0.0.10

C XLA release 0.0.9

21 Jan 21:33
63a512e
Compare
Choose a tag to compare

C XLA release 0.0.9

C XLA release 0.0.8

02 Jan 00:19
c1bde4a
Compare
Choose a tag to compare

C XLA release 0.0.8

C XLA release 0.0.7

14 May 23:23
0c42e3b
Compare
Choose a tag to compare

C XLA release 0.0.7

C XLA release 0.0.1

14 May 19:04
6f0610a
Compare
Choose a tag to compare

C XLA release 0.0.1

Release 0.0.6

26 Sep 11:38
0ad8023
Compare
Choose a tag to compare

This is a small release which fixes an incompatibility with a dependency

Tested on Ubuntu 64-bit with Idris2 nightly build and Nx XLA CPU binaries v0.3.0

API changes

  • implement non-finite Bounded for scalar tensors #332
  • add argmin, argmax for finding the index of minina, maxima in a vector #329
  • remove Hashable implementation for Pair #335

Bug fixes

  • fix min and max for NaN inputs #334

Build changes

  • enable manual trigger for documentation build #324
  • build locally with latest version of hashable #335

Release 0.0.5

09 Sep 18:51
d556915
Compare
Choose a tag to compare

Tested on Ubuntu 64-bit with Idris2 nightly build and Nx XLA CPU binaries v0.3.0

API changes

  • support execution on GPU #259
  • add pure Idris tensor Literal for improved shape inference #183 #260 #261 #263 #304 #305 #306 #308
  • add support for unsigned 64-bit XLA type U64 #282
  • remove Each and # from element-wise names #232
  • hide IO in eval and rename to toArray #241
  • hide IO in toString; implement Show for Tensor #242
  • add/implement tensor functions
    • support for slicing with dynamic (tensor) indices #303
    • support for slicing multiple axes at once #269
    • unary functions: (inverse-)(hyperbolic-)trigonometric; recip; square #268
    • select for choosing values element-wise from two tensors #233
    • cond for evaluating one of a pair of functions #238
    • transpose for transposing arbitrary axes #299 #307 #316
    • reverse for reversing elements along specified tensor axes #286 #307 #316
    • sort for sorting elements along tensor axes #283
    • (|\) and (\|) for solving linear equations with lower- and upper- triangular matrices #228
    • triangle for fetching the triangular parts of a matrix #229
    • stateless uniform sampling #281 #284 #287 #297
    • stateless univariate normal sampling #292 #297
  • extend reduce to operate on multiple axes at once #298 #307 #316
  • move runtime shapes from tensor APIs to data constructor #231
  • use Int32 rather than Int for S32 #311
  • erase proofs where possible #276
  • implement Gaussian univariate CDF #239
  • remove Error interface #255
  • replace Morphism with Reader in Bayesian optimization tooling #319

Bug fixes

  • fix reading/writing unsigned int from xla::Literal #279
  • ensure we can read/write numeric values at XLA bounds #291

Documentation

  • add tutorial on basic dependent types for tensors #301
  • move installation instructions to INSTALL.md #248
  • provide copy-paste installation instructions #321

Build changes

  • adopt Idris2 package manager pack, thus using the latest Idris2 build #321

Release 0.0.4

27 Feb 18:18
f6e2a5b
Compare
Choose a tag to compare

Tested on Ubuntu 64-bit with Idris2 v0.5.1 and Nx XLA CPU binaries v0.3.0

This release implements (or, in some cases, removes) all functions the Tensor API.

API changes

  • introduce Idris counterparts to XLA data types (S32, U32, F64 etc.) for use in Tensor #168. Add custom numerical interfaces to mirror Prelude numerical constraints #174
  • support boolean primitive type PRED #135
  • use List Nat for tensor shapes #184 #185
  • make dtype explicit in Array #156
  • make broadcasting explicit #138
  • delete the Variable mutable tensor type #186
  • delete trace_product #189, cast_dtype, inverse #198, det #209
  • make ProbabilisticModel an interface #121
  • implement new functions and operators. Most of these APIs have changed during implementation
    • identity for constructing identity matrices #199
    • index for basic tensor indexing #191
    • reshape for reshaping tensors #192
    • expand for adding a dimension to a Tensor #193
    • squeeze for removing dimensions of length one #194
    • slice for slicing along any one axis #195
    • split for splitting a tensor in two along a given axis #196
    • concat for concatenating Tensors #197
    • .T for transposing matrices #208
    • diag for fetching the diagonal of a matrix #211
    • element-wise unary functions: absolute value absEach #144 #163; numeric negation negate #157; natural exponential expEach and logarithm logEach #187; add floor floorEach, ceiling ceilEach, logistic logisticEach, sine sinEach, cosine cosEach, hyperbolic tangent tanhEach, and square root sqrtEach #188; boolean negation notEach #160
    • element-wise binary functions: equality ==# and inequality /=# #136; subtraction - #145; multiplication *# #134; division /# #158; comparison ># <# >=# <=# #143; logical and &&# and or ||# #160; exponential wrt any base ^# #206; minimum minEach and maximum maxEach #179
    • division by a constant / #158
    • multiplication by a constant * #142
    • functor-like map #165, applicative-like map2 #171 #178 and foldable-like reduce #176 along with monoid instances for Tensor #180
    • @@ for matrix and vector multiplication #201
    • trace for summing along a matrix diagonal #202
    • cholesky for lower triangular Cholesky decomposition #203
    • (\\) for solving linear equations wrt triangular matrices #207

Bug fixes

  • pdf for Gaussian now uses covariance correctly in exponent #209

Documentation

  • expand introduction to Bayesian optimisation in tutorial #172

Build changes

  • compile XLA C wrapper into single shared library #215
  • update XLA binary to version 0.0.3 (for XLA/TensorFlow version 2.8.0) #216

Release 0.0.3

27 Dec 18:28
b14a501
Compare
Choose a tag to compare

Tested on Ubuntu 64-bit with Idris2 v0.5.1 and Nx XLA binaries v0.2.0

API enhancements

  • implement Gaussian PDF (#42)
  • refactor distribution functionality (#86)
  • replace Connection with Morphism (#89)
  • improve efficiency of GP training with Cholesky factorization (#93)
  • allow any data representation in Bayesian optimization (#100)
  • erase as many values as possible (#106)
  • simplify namespace names (#107)
  • add Matern 5/2 kernel (#109)
  • simplify Distribution with functional dependencies (#112)
  • implement conjugate GP regression (#113)
  • introduce Dataset data type (#115)
  • add Bayesian optimization loop (#114)
  • add XLA backend (#82 #90 #123 #124 #126 #127 #128 #129 #131) with executable implementations for addition (#128) and broadcasting (#130)

Other

  • add installation instructions (#133)
  • update Idris 2 to v0.5.1 (#78)

Release 0.0.2

27 Jun 21:16
706d13c
Compare
Choose a tag to compare

API enhancements

  • add RBF kernel (#75)
  • implement zero mean function (#74)
  • constrain element type of tensors to have corresponding types in backend (#47)
  • replace Maybe usage with Either and error types (#45)
  • add support for squeezing Tensors (#40)
  • add numerous tensor operators (#39)
  • add mutable (linear) tensor Variable type and in-place ops (#36)
  • hide Tensor constructor, enabling arbitrary Tensor representation (#34)
  • implement acquisition functions: (negative) lower confidence bound, probability of feasibility, expected improvement (#24)

Bug fixes

  • improve type inference for tensor contraction operator @@ (#72)

Other

  • convert Bayesian optimization integration test to tutorial (#43) (#51)
  • add automatic API reference build and deployment on release (#77)
  • update Idris 2 to v0.4.0 (#78)