v0.7.0
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)