Skip to content

Releases: hikettei/Caten

v0.2

03 Dec 08:38
c28811d
Compare
Choose a tag to compare
v0.2 Pre-release
Pre-release

What's Changed

New Contributors

Full Changelog: v0.1...v0.2

v0.1

03 Nov 12:20
eb177db
Compare
Choose a tag to compare
v0.1 Pre-release
Pre-release

What's Changed

Full Changelog: v0.0...v0.1

v0.0

11 Sep 10:32
83e2933
Compare
Choose a tag to compare
v0.0 Pre-release
Pre-release

Features

  • Fundamentals of Building a Compiler Based on Polyhedral Compiler and Pattern Matcher
    • caten/ajit Polyhedral Compiler based on ISL (and more!), targeting multiple hardware.
      • Currently supports basic loop-oriented optimization, including: Loop Fusion, Loop Unrolling (Automatic Parallelization and Vectorizing), and Permuting.
    • caten/air An optimizing pattern matcher based on trivia.
  • Implement a MemoryPlanner.
    • all unary ops activations are always in-place.
  • VM
    • Lisp VM (for testing)
  • JIT
    • Currently supports Clang and Metal JIT.
  • Basic Neural Network Operations (Linear, ConvND, Activations, Norms, etc...)
  • Fundamental Tensor Operations (mathematical functions, arithmetic, reduce, broadcast, view, reshape, permute, etc..)
  • Implements reverse-mode Autograd but it is still unstable.

For the next release...

  • (Metal JIT) Complete Implementing Metal JIT, by implementing BEAM Search to determine the optimal global_size/local_size. #44
  • (AJIT) Implement Hide Latency Optimization and Index Computation Simplification.
  • (AIR) Implement Attr class for the type-safety. #70
  • (NN) Add tests for ConvND and Norms
  • (CI) Add a pipeline for the benchmarking (my goal is to beat PyTorch)
  • (AJIT) Gemm-specific optimization (8x8 gemm tiling)
  • (AJIT) packed-funcall -> simd mutation for Clang and Metal
  • (CI) Implement YoLoV3 and running on CI

What's Changed

  • [CI Debugging+Enhancement] All mathematical functions should (aim to) satisfy the 1.0ULP accuracy by @hikettei in #4
  • [wip] refactors, implemented nn ops etc by @hikettei in #5
  • [WIP] polyhedral compiler passing all tests by @hikettei in #8
  • [Feature] Activations/ReduceMax/ReduceMin by @hikettei in #11
  • [WIP] Establish APIs, NN Ops, Control Flow etc... by @hikettei in #12
  • Threefry2x32 by @hikettei in #13
  • AOT Compilation, Shape Inference by @hikettei in #15
  • [Draft] Make JIT completely equivalent to VM (Forward Mode) by @hikettei in #16
  • [WIP] (Backward Mode) Make JIT completely equivalent to the VM Mode by @hikettei in #18
  • [JIT] Kernel Creation, Improving memory-planner, etc... by @hikettei in #32
  • Patch for CCL and ECL by @hikettei in #37
  • gc-reachable isl objects by @hikettei in #39
  • [Feature] New Backends: Metal and Lisp by @hikettei in #42
  • [Enhancements] (Much Better) Loop Fusion and Packed Funcall Mutation (for unrolling/vectorizing/tiling). by @hikettei in #49
  • [WIP] Fix invaild shape inference in composed gemm and index-components by @hikettei in #51
  • Revisit: fix %where by @hikettei in #53
  • CI: Improvements on CI and Testing by @hikettei in #54
  • CI: Testing against all nn ops by @hikettei in #66
  • [Refactor] Introduce Memory Optimization based on MIP by @hikettei in #69

New Contributors

Full Changelog: https://github.com/hikettei/Caten/commits/v0.0