Skip to content

Latest commit

 

History

History
151 lines (128 loc) · 10.7 KB

CHANGELOG.md

File metadata and controls

151 lines (128 loc) · 10.7 KB

Pending Additions

  • #573 Bugfix: matmul fixes: early out for 2 vectors, remainders not added if inner block is 1 for split 10 case
  • #580 New feature: fliplr()

v0.4.0

  • Update documentation theme to "Read the Docs"
  • #429 Create submodule for Linear Algebra functions
  • #429 Implemented QR
  • #429 Implemented a tiling class to create Square tiles along the diagonal of a 2D matrix
  • #429 Added PyTorch Jitter to inner function of matmul for increased speed
  • #483 Bugfix: Underlying torch tensor moves to the right device on array initialisation
  • #483 Bugfix: DNDarray.cpu() changes heat device to cpu
  • #496 New feature: flipud()
  • #498 Feature: flip()
  • #499 Bugfix: MPI datatype mapping: torch.int16 now maps to MPI.SHORT instead of MPI.SHORT_INT
  • #501 New Feature: flatten
  • #506 Bugfix: setup.py has correct version parsing
  • #507 Bugfix: sanitize_axis changes axis of 0-dim scalars to None
  • #511 New feature: reshape
  • #515 ht.var() now returns the unadjusted sample variance by default, Bessel's correction can be applied by setting ddof=1.
  • #518 Implementation of Spectral Clustering.
  • #519 Bugfix: distributed slicing with empty list or scalar as input; distributed nonzero() of empty (local) tensor.
  • #520 Bugfix: Resplit returns correct values now.
  • #520 Feature: SplitTiles class, used in new resplit, tiles with theoretical and actual split axes
  • #521 Add documentation for the generic reduce_op in Heat's core
  • #522 Added CUDA-aware MPI detection for MVAPICH, MPICH and ParaStation.
  • #524 New Feature: cumsum & cumprod
  • #526 float32 is now consistent default dtype for factories.
  • #531 Tiling objects are not separate from the DNDarray
  • #534 eye() supports all 2D split combinations and matrix configurations.
  • #535 Introduction of BaseEstimator and clustering, classification and regression mixins.
  • #536 Getting rid of the docs folder
  • #541 Introduction of basic halo scheme for inter-rank operations
  • #558 sanitize_memory_layout assumes default memory layout of the input tensor
  • #558 Support for PyTorch 1.5.0 added
  • #562 Bugfix: split semantics of ht.squeeze()
  • #567 Bugfix: split differences for setitem are now assumed to be correctly given, error will come from torch upon the setting of the value

v0.3.0

  • #454 Update lasso example
  • #474 New feature: distributed Gaussian Naive Bayes classifier
  • #473 Matmul now will not split any of the input matrices if both have split=None. To toggle splitting of one input for increased speed use the allow_resplit flag.
  • #473 dot handles 2 split None vectors correctly now
  • #470 Enhancement: Accelerate distance calculations in kmeans clustering by introduction of new module spatial.distance
  • #478 ht.array now typecasts the local torch tensors if the torch tensors given are not the torch version of the specified dtype + unit test updates
  • #479 Completion of spatial.distance module to support 2D input arrays of different splittings (None or 0) and different datatypes, also if second input argument is None

v0.2.2

This version adds support for PyTorch 1.4.0. There are also several minor feature improvements and bug fixes listed below.

  • #443 added option for neutral elements to be used in the place of empty tensors in reduction operations (operations.__reduce_op) (cf. #369 and #444)
  • #445 var and std both now support iterable axis arguments
  • #452 updated pull request template
  • #465 bug fix: x.unique() returns a DNDarray both in distributed and non-distributed mode (cf. [#464])
  • #463 Bugfix: Lasso tests now run with both GPUs and CPUs

v0.2.1

This version fixes the packaging, such that installed versions of HeAT contain all required Python packages.

v0.2.0

This version varies greatly from the previous version (0.1.0). This version includes a great increase in functionality and there are many changes. Many functions which were working previously now behave more closely to their numpy counterparts. Although a large amount of progress has been made, work is still ongoing. We appreciate everyone who uses this package and we work hard to solve the issues which you report to us. Thank you!

Updated Package Requirements

  • python >= 3.5
  • mpi4py >= 3.0.0
  • numpy >= 1.13.0
  • torch >= 1.3.0

Optional Packages

  • h5py >= 2.8.0
  • netCDF4 >= 1.4.0, <= 1.5.2
  • pre-commit >= 1.18.3 (development requirement)

Additions

GPU Support

#415 GPU support was added for this release. To set the default device use ht.use_device(dev) where dev can be either "gpu" or "cpu". Make sure to specify the device when creating DNDarrays if the desired device is different than the default. If no device is specified then that device is assumed to be "cpu".

Basic Operations

Basic Multi-DNDarray Operations

Developmental

  • Code of conduct
  • Contribution guidelines
    • pre-commit and black checks added to Pull Requests to ensure proper formatting
  • Issue templates
  • #357 Logspace factory
  • #428 lshape map creation
  • Pull Request Template
  • Removal of the ml folder in favor of regression and clustering folders
  • #365 Test suite

Linear Algebra and Statistics

Regression, Clustering, and Misc.

  • #307 lasso regression example
  • #308 kmeans scikit feature completeness
  • #435 Parter matrix

Bug Fixes

  • KMeans bug fixes
    • Working in distributed mode
    • Fixed shape cluster centers for init='kmeans++'
  • __local_op now returns proper gshape
  • allgatherv fix -> elements now sorted in the correct order
  • getitiem fixes and improvements
  • unique now returns a distributed result if the input was distributed
  • AllToAll on single process now functioning properly
  • optional packages are truly optional for running the unit tests
  • the output of mean and var (and std) now set the correct split axis for the returned DNDarray