Skip to content

Commit

Permalink
Update change log for next release
Browse files Browse the repository at this point in the history
  • Loading branch information
robertknight committed Jan 22, 2024
1 parent 516c25b commit d4fe019
Showing 1 changed file with 41 additions and 0 deletions.
41 changes: 41 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,47 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.3.0] - Unreleased

### Breaking changes

The static and dynamic tensor types (`NdTensorBase`, `TensorBase`) have been
unified into a single implementation. Most code uses these via type aliases
(`NdTensor`, `Tensor` etc.), which remain the same. However there have been some
API changes as a result:

- The `View` and `NdView` traits were combined into `AsView`. The recommended
way to import this trait is via the prelude (`use rten_tensor::prelude::*`)

- Some inherent methods of `TensorBase` moved to the `AsView` trait. You may
need to add additional imports of this trait or the prelude.

- `NdTensor::from_data` now has the same API signature as `Tensor::from_data`.
This means the order of arguments is reversed compared to before. It is now
`from_data(shape, data)`. Creating tensors with custom strides is now done
via `from_data_with_strides` or `from_slice_with_strides`.

- Tensor methods for broadcasting and reshaping tensors now determine the rank
of the result from the type of the shape argument. If passed an array, they
return a static-rank view. If passed a slice, they return a dynamic-rank
view.

- Methods that insert, remove or swap axes now have an `_axis` suffix (eg.
`move_axis`). Previously some of these methods had a `_dim` suffix.

- The `slice` method now always returns a static rank view. Usage is
`tensor.slice::<M, _>(range)` where `M` is the rank of the result. To create
a view with a dynamic dimension count, use `tensor.slice_dyn(range)` instead.

## Other changes

- Optimized index iteration for tensors (d3fd3c9)
- Optimized col2im transform used by ConvTranspose (fbc541b)
- Optimized depthwise convolution (20e83e8)
- Improved performance on Arm via a better optimized GEMM kernel
([#32](https://github.com/robertknight/rten/pull/32)) and vectorized kernels
for other functions ([#31](https://github.com/robertknight/rten/pull/31)).

## [0.2.0] - 2024-01-03

- Improved inference performance on ARM [#30](https://github.com/robertknight/rten/pull/30)
Expand Down

0 comments on commit d4fe019

Please sign in to comment.