Skip to content

v0.7.0

Compare
Choose a tag to compare
@axsaucedo axsaucedo released this 14 Mar 16:03
· 495 commits to master since this release

Release v0.7.0

The 0.7.0 release introduces a very extensive list of features - a high level overview includes:

  • Support for push constants
  • Support for specailisation constants
  • Support for tensor data types bool, float, double, int32 and uint32
  • Ability to define Operations outside manager
  • Ability to create Algorithm outside manager
  • New OpMemoryBarrier to add custom barriers
  • New OpAlgoDispatch to dispatch algorithm with push constants
  • New interface for sequences
  • New memory relationships all managed by top level manager with weak references allowing for smart pointers to terminate objects
  • Code coverage metrics using gcov + lcov

Implemented enhancements:

  • Extend non-spdlog print functions to use std::format #158
  • Add code coverage reports with codecov #145
  • Explore removing std::vector mData; completely from Tensor in favour of always storing data in hostVisible buffer memory (TBC) #144
  • Update all examples to match breaking changes in 0.7.0 #141
  • Avoid copy when returning python numpy / array #139
  • Cover all Python & C++ tests in CI #121
  • Add C++ Test for Simple Work Groups Example #117
  • Expose push constants in OpAlgo #54
  • Expose ability to create barriers in OpTensor operations #45
  • Create delete function in manager to free / destroy sequence #36
  • Make specialisation data extensible #12
  • Support multiple types for Kompute Tensors #2
  • Added re-record sequence functionality and updated docs #171 (axsaucedo)
  • Extend non-spdlog print functions to use fmt::format / fmt::print #159 (axsaucedo)
  • Added support for custom SpecializedConstants and removed KomputeWorkgroup class #151 (axsaucedo)
  • Added destroy functions for tensors and sequences (named and object) #146 (axsaucedo)

Fixed bugs:

  • push_constant not working in my case? #168
  • DescriptorPool set is not being freed #155
  • Updated memory barriers to include staging buffers #182 (axsaucedo)
  • Adds push const ranges in pipelinelayout to fix #168 #174 (axsaucedo)
  • Added destructor for staging tensors #134 (axsaucedo)

Closed issues:

  • Update memory barriers to align with tensor staging/primary memory revamp #181
  • Move shader defaultResource inside kp::Shader class #175
  • Reach at least 90% code coverage on tests #170
  • Add functionality to re-record sequence as now it's possible to update the underlying algorithm #169
  • Use numpy arrays as default return value #166
  • Update all shared_ptr value passes to be by ref or const ref #161
  • Amend memory hierarchy for kp::Operations so they can be created separately #160
  • Customise theme of documentation #156
  • Remove KomputeWorkgroup class in favour of std::array<uint32_t, 3> #152
  • Passing raw GLSL string to Shader Module depricated so remove this method from supported approach #150
  • Add python backwards compatibility for eval_tensor_create_def #147
  • Document breaking changes for 0.7.0 #140
  • Tensor memory management and memory hierarchy redesign #136
  • Staging tensor GPU memory is not freed as part of OpCreateTensor removal #133
  • eStorage Tensors are currently unusable as OpTensorCreate calls mapDataIntoHostMemory #132
  • 0.6.0 Release #126
  • java.lang.UnsatisfiedLinkError: dlopen failed: library "libkompute-jni.so" not found #125
  • Initial exploration: Include explicit GLSL to SPIRV compilation #107
  • Add support for push constants #106

Merged pull requests:

  • Resolve moving all functions from tensor HPP to CPP #186 (axsaucedo)
  • Device Properties #184 (alexander-g)
  • Too many warnings #183 (alexander-g)
  • Add support for bool, double, int32, uint32 and float32 on Tensors via TensorT #177 (axsaucedo)
  • Support for Timestamping #176 (alexander-g)
  • Test for ShaderResources #165 (aliPMPAINT)
  • Amend memory hierarchy to enable for push constants and functional interface for more flexible operations #164 (axsaucedo)
  • made changes for include paths for complete installation #163 (aliPMPAINT)
  • Added dark mode on docs #157 (axsaucedo)
  • Glslang implementation for online shader compilation #154 (axsaucedo)
  • Adding test code coverage using gcov and lcov #149 (axsaucedo)
  • Added temporary backwards compatibility for eval_tensor_create_def function #148 (axsaucedo)
  • Amend memory ownership hierarchy to have Tensor owned by Manager instead of OpCreateTensor / OpBase #138 (axsaucedo)
  • Removed Staging Tensors in favour of having two buffer & memory in a Tensor to minimise data transfer #137 (axsaucedo)