Releases: KomputeProject/kompute
Releases · KomputeProject/kompute
v0.9.0
v0.9.0
Merged pull requests:
- Readded missing codecov cmake targets #345 (axsaucedo)
- Fix example build #340 (ToKiNoBug)
- Fix find_package, enable CPack and support clang-cl #338 (ToKiNoBug)
- Fix cmake install2 (with sign off) #337 (ToKiNoBug)
- [performance bug] Fix Sequence::clear() #328 (Crydsch)
- Fix vulkan version parsing #325 (Crydsch)
- Adding storage tensor functionality with tests #316 (axsaucedo)
- Logging fixes for spdlog #315 (axsaucedo)
- Adding CI setup to ensure examples are tested automatically #314 (axsaucedo)
- Updating default headers to Vulkan v1.3.231 #312 (axsaucedo)
- Fixed build error on gcc 12 #311 (hungrymonkey)
- Upgrading to Vulkan 1.3 #309 (axsaucedo)
- Updated the fetch_content git repo and commit hash #307 (COM8)
- Fixes two mistakes in comments and removes one unused vk::MappedMemoryRange #301 (MiroPalmu)
- Added an option to get the current vk instance #292 (COM8)
- fix(CMakeLists.txt): typo #291 (tpoisonooo)
- Fixed compiler warnings #289 (COM8)
- Refactor build system #287 (COM8)
- Added .clang-format file and formatted everything #286 (COM8)
- Enum class fix for fmt 8.x #285 (COM8)
- Fixed Vulkan deprecation warning #284 (COM8)
- Removed '#pragma once' from cpp files #283 (COM8)
What's Changed
- Fixed Vulkan deprecation warning by @COM8 in #284
- Removed '#pragma once' from cpp files by @COM8 in #283
- Enum class fix for fmt 8.x by @COM8 in #285
- Added .clang-format file and formatted everything by @COM8 in #286
- Fixed compiler warnings by @COM8 in #289
- fix(CMakeLists.txt): typo by @tpoisonooo in #291
- Added an option to get the current vk instance by @COM8 in #292
- Fixes two mistakes in comments and removes one unused vk::MappedMemoryRange by @MiroPalmu in #301
- Refactor build system by @COM8 in #287
- Updated the fetch_content git repo and commit hash by @COM8 in #307
- Upgrading to Vulkan 1.3 by @axsaucedo in #309
- Fixed build error on gcc 12 by @hungrymonkey in #311
- Updating default headers to Vulkan v1.3.231 by @axsaucedo in #312
- Adding CI setup to ensure examples are tested automatically by @axsaucedo in #314
- Logging fixes for spdlog by @axsaucedo in #315
- Adding storage tensor functionality with tests by @axsaucedo in #316
- Fix vulkan version parsing by @Crydsch in #325
- [performance bug] Fix Sequence::clear() by @Crydsch in #328
- Fix cmake install2 (with sign off) by @ToKiNoBug in #337
- Fix find_package, enable CPack and support clang-cl by @ToKiNoBug in #338
- Fix example build by @ToKiNoBug in #340
- Readded missing codecov cmake targets by @axsaucedo in #345
New Contributors
- @COM8 made their first contribution in #284
- @MiroPalmu made their first contribution in #301
- @hungrymonkey made their first contribution in #311
- @Crydsch made their first contribution in #325
- @ToKiNoBug made their first contribution in #337
Closed issues:
- State of the Project #344
- Does it support Mali GPU? Like rk35xx series board? #330
- After compilation, only the library file has no header file #324
- windows building error #321
- How can I know to which extent a particular GPU is supported? #319
- windows building error #318
- Array multiplication example code needs to be updated everytime kompute have a build issue. #313
- gcc12 build fails because std:shared_ptr requires explicit declation of <memory> #310
- Android sample is not compiling #305
- read/write operations from disk from GPU/device arrays ? #299
- memory sanitizer reports errors for simple example #298
- Build failure: static assertion failed: Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html\#udt #282
- Build cleanly without warnings #278
- Upgrade to version 1.3 of Vulkan #265
Full Changelog: v0.8.1...v0.9.0
v0.8.1
v0.8.1
Closed issues:
- Discord link in README and docs is broken #276
- Website examples typo's and 6500 XT unknown GPU #275
- [Question] How to disable all log ? #274
- full diagram 404 #271
- Error when enabling
KOMPUTE\_ENABLE\_SPDLOG
#268 - Add KOMPUTE_LOG_ACTIVE_LEVEL instead of current SPDLOG_ACTIVE_LEVEL #267
- Update/Fix Android project #264
- Update compileSource function in examples/docs to correct one #261
- Technically can Kompute be modified to support data visualization? #260
- Data-transfer for Integrated GPU #258
- Python "getting started" example fails #252
- Python example in README doesn't work #248
- Running Android app #234
Merged pull requests:
- Added active log level definitions for kompute #280 (axsaucedo)
- Fix TestDestroy.TestDestroyTensorSingle #279 (ScheissSchiesser)
- Updated discord link #277 (axsaucedo)
- style(src/Algorithm): fix typo #273 (tpoisonooo)
- Fix Android Example confirmed with blog post steps #266 (axsaucedo)
- Adding Governance with TSC charter #263 (axsaucedo)
- Updating array_mutiplication example to work correctly #262 (axsaucedo)
- Updated formatting #257 (axsaucedo)
- Fix first two python examples in the docs #256 (lopuhin)
- Remove nonexisting "single_include" from INSTALL_INTERFACE #254 (ItsBasi)
- Added community page #253 (axsaucedo)
- Updated readme to reflect shader utils #249 (axsaucedo)
- Avoid using pointers to temporary copies of desired extensions. #247 (ItsBasi)
v0.8.0
v0.8.0
Closed issues:
- An unset KOMPUTE_ENV_DEBUG_LAYERS leads KP_LOG_DEBUG to pass envLayerNamesVal==nullptr #245
- Extend utils shader helpers in test for windows #240
- Python segfaults after import kp #230
- Simple and extended python examples do not work (v 0.7.0) #228
- Python macOS issue (ImportError: dlopen(...): no suitable image found. Did find: ...: mach-o, but wrong architecture) #223
- Python macOS issue (Symbol not found: __PyThreadState_Current ... Expected in: flat namespace) #221
- Finalise Migration of Kompute into Linux Foundation #216
- CMake Error: Imported target "kompute::kompute" includes non-existent path "/usr/local/single_include" #212
- Incompatibality inroduced with #168 on Vulkan 1.1.x #209
- external libraries #201
- Starting slack group or discord for alternative / faster version of asking questions #198
- Test SingleSequenceRecord is not thread safe and fails in AMD card #196
- Update Kompute headers to reference the glslang headers for install vs build interfaces #193
- Integrate with GLSLang find_package file when issue is resolved in the glslang repo #191
- Release 0.7.0 #187
- Get number of available devices #185
- Deep Learning Convolutional Neural Network (CNN) example implementation #162
- Create example compiling and running in raspberry pi with Mesa Vulkan drivers #131
- Add support for VK_EXT_debug_utils labels #110
Merged pull requests:
- Fix for null debug log causing exception in fmt lib #246 (axsaucedo)
- 0.8.0 Release #244 (axsaucedo)
- Adding support for different types for spec and push consts #242 (axsaucedo)
- Extend shader helper functions in tests to support windows #241 (axsaucedo)
- Increase test cov across codebase #239 (axsaucedo)
- Updated collab link for C++ notebook #237 (axsaucedo)
- Updating repo licenses and links #236 (axsaucedo)
- Removing GLSLang as core dependency #235 (axsaucedo)
- Naive matrice multiplication example #233 (Corentin-pro)
- Fixed typo in CMakeLists.txt (ANDOID => ANDROID) #232 (Corentin-pro)
- Set kp_debug, kp_info, kp_warning and kp_error to py::none() when the program terminates. #231 (thinking-tower)
- VGG7 Python example #227 (20kdc)
- Add documentation for CMake flags #224 (thinking-tower)
- Set PYTHON_INCLUDE_DIR and PYTHON_LIBRARY during installation #222 (thinking-tower)
- Removing xxd.exe binary and add instructions to build #220 (axsaucedo)
- [PYTHON] Ensure numpy array increments refcount of tensor to keep valid #219 (axsaucedo)
- Added destroy for manager #218 (axsaucedo)
- Revert "Fixed the issue that caused CMake to look for non-existent path after being installed" #217 (axsaucedo)
- Fixed the issue that caused CMake to look for non-existent path after being installed #213 (unexploredtest)
- omitted .data() because it is incompatible with vulkan 1.1.x #211 (unexploredtest)
- vkEnumeratePhysicalDevices(*(this->mInstance) ... doesn't work on Linux i386 #208 (unexploredtest)
- Raises an error when having no/exceeding vulkan device's limit #207 (unexploredtest)
- Updated README and fixed a syntax error on C++'s example #206 (unexploredtest)
- removed the extra comma after KOMPUTE_OPT_REPO_SUBMODULE_BUILD #205 (unexploredtest)
- Extending list_devices test for multiple devices #204 (axsaucedo)
- Fix #include <SPIRV/GlslangToSpv.h> #200 (unexploredtest)
- Added memory barrier on test #199 (axsaucedo)
- Add function to list physical devices #195 (axsaucedo)
- v0.7.0 release #189 (axsaucedo)
- Add instructions for running on Pi4 #180 (hpgmiskin)
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)
v0.6.0
v0.6.0
Implemented enhancements:
- Add simple test for Python
log\_level
function #120 - Add further numpy support #104
- SWIG syntax error - change order of keywords. #94
- Create mocks to isolate unit tests for components #8
- Disallowing zero sized tensors #129 (alexander-g)
- Added further tests to CI and provide Dockerimage with builds to swiftshader #119 (axsaucedo)
- Workgroups for Python #116 (alexander-g)
- Ubuntu CI #115 (alexander-g)
- Faster set_data() #109 (alexander-g)
- String parameter for eval_algo_str methods in Python #105 (alexander-g)
- Added numpy() method #103 (alexander-g)
Fixed bugs:
- [PYTHON] Support string parameter instead of list for eval_algo_data when passing raw shader as string #93
- [PYTHON] Fix log_level on the python implementation (using pybind's logging functions) #92
Closed issues:
- Add documentation for custom operations #128
- Numpy Array Support and Work Group Configuration in Python Kompute #124
- Remove references to spdlog in python module #122
- Setup automated CI testing for PRs using GitHub actions #114
- Python example type error (pyshader). #111
- Update all references to operations to not use template #101
- Getting a undefined reference error while creating a Kompute Manager #100
Merged pull requests:
- 122 remove spdlog references in python #123 (axsaucedo)
- Native logging for Python #118 (alexander-g)
- Fixes for the c++ Simple and Extended examples in readme #108 (aliPMPAINT)
- Fix building shaders on native linux #102 (aliPMPAINT)
Release v0.5.1
- Fixed error with Kompute-go SWIG integration #94
- Added python list operations for Tensor (setitem, len, etc)
- Added new python blog post
Release v0.5.0
- Migrated all OpAlgoBase components to use dynamic layouts instead of templates #26, #57
- Updated all examples to use spir-v bytes by default #86
- Added compatibility for Vulkan Headers HPP v1.2.154+ #84
- Added Python Pypi package for Kompute #87
- Added python interface functions to process python spirv bytes directly* Added implementation of Logistic Regression implementation in Python
- Extended examples to showcase pyshader to use more pythonic GPU development
- Enabled spdlog builds by default on python package
- Added multi-platform python package installs via pypi https://pypi.org/project/kp/
- Added log level config functionality in python
- Added Python Bindings for Kompute library
- Added Python tests showcasing core functionality using Manager and Sequences
- Added documentation integrating pyhton class references (to be automated)
- Changed sequences to be returned as shader_ptr instead of weak_ptr
- Added sequence memory management via init member function
- Added explicit definition on VulkanDestroy funtions for VulkanHPP 1.2.155-1.2.158 compat
- Removed template parameters from OpAlgoBase functions (added Op*.cpp files)
- Added python build to main cmake file
- Added pybind11 submodule
- Added Sequence tests to verify memory management via init member function
- Update e2e examples
- Add Python documentation and further examples
Release v0.4.1
- Support for Vulkan HPP version 1.2.155 and above (tested with every version until 1.2.158)
- Updated linux docker image to test multiple versions of Vulkan SDK
- CCLS support for submodule builds (besides vcpkg builds)
- Submodules for core dependencies for flexibility when testing dependencies with particular versions
- Build flags to configure submodule builds vs vcpkg (toolchain based) builds
- Removed range prints which removes explicit dependency on fmt
- Syntax correction of private/protected member variables
- AUR package added by contributor https://aur.archlinux.org/packages/vulkan-kompute-git/ via #81
Release v0.4.0
- Added async/await capabilities for manager and sequence
- Added fence resource as member object for Sequence
- Ensure sequence begin() function clears previous operations
- Ensure begin does not get called if sequence in running state
- Ensure manager creates new sequence when default functions called
- Added capabilities for multi queue support in manager with explicit allocation on sequences
- Fixed compile warnings on Linux (ubuntu)
- Added createManagedSequence on manager with ability for default sequence name to be created
- Added tests for asynchronous and parallel processing
- Added LogisticRegression shader as cpp header
- Added documentation on advanced examples
- Added documentation on shader-to-cpp-header scripts
- Added CNAME for kompute.cc domain
Release v0.3.2
- Enabled dynamic loading of Vulkan library for Vulkan support
- Added Android NDK Wrapper with Vulkan HPP support
- Updated CMAKE min standard to C++14
- Downgraded min cmake requirement to 3.4.1
- Added new shader file as shaderlogisticregression as part of AggregateHeader
- Added
#pragma once
guard toKompte.hpp
single header - Updated
createComputePipeline
to return Result instead of ResultValue for backwards compatibility - Added new compute flags for android including:
- KOMPUTE_OPT_INSTALL
- KOMPUTE_OPT_ANDROID_BUILD
- KOMPUTE_OPT_DISABLE_VK_DEBUG_LAYERS
- KOMPUTE_VK_API_VERSION
- KOMPUTE_VK_API_MINOR_VERSION
- KOMPUTE_VK_API_MAJOR_VERSION