Skip to content

Releases: KomputeProject/kompute

v0.9.0

20 Jan 15:39
f3c7bd0
Compare
Choose a tag to compare

v0.9.0

Full Changelog

Merged pull requests:

What's Changed

New Contributors

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

13 Apr 10:24
83210c5
Compare
Choose a tag to compare

v0.8.1

Full Changelog

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:

v0.8.0

16 Sep 04:09
cf94e53
Compare
Choose a tag to compare

v0.8.0

Full Changelog

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:

v0.7.0

14 Mar 16:03
Compare
Choose a tag to compare

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

31 Jan 12:01
Compare
Choose a tag to compare

v0.6.0

Full Changelog

Implemented enhancements:

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:

Release v0.5.1

14 Nov 08:59
Compare
Choose a tag to compare
  • 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

08 Nov 16:53
Compare
Choose a tag to compare
  • 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

01 Nov 20:22
9babbc5
Compare
Choose a tag to compare
  • 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

18 Oct 20:37
Compare
Choose a tag to compare
  • 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

04 Oct 17:16
45ddfe5
Compare
Choose a tag to compare
  • 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 to Kompte.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