diff --git a/CHANGELOG.md b/CHANGELOG.md index 3a48d1fa1..7d59cb169 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,279 +1,279 @@ # Changelog -## [v0.7.0](https://github.com/EthicalML/vulkan-kompute/tree/v0.7.0) +## [v0.7.0](https://github.com/KomputeFoundation/kompute/tree/v0.7.0) -[Full Changelog](https://github.com/EthicalML/vulkan-kompute/compare/v0.6.0...v0.7.0) +[Full Changelog](https://github.com/KomputeFoundation/kompute/compare/v0.6.0...v0.7.0) **Implemented enhancements:** -- Extend non-spdlog print functions to use std::format [\#158](https://github.com/EthicalML/vulkan-kompute/issues/158) -- Add code coverage reports with codecov [\#145](https://github.com/EthicalML/vulkan-kompute/issues/145) -- Explore removing `std::vector mData;` completely from Tensor in favour of always storing data in hostVisible buffer memory \(TBC\) [\#144](https://github.com/EthicalML/vulkan-kompute/issues/144) -- Update all examples to match breaking changes in 0.7.0 [\#141](https://github.com/EthicalML/vulkan-kompute/issues/141) -- Avoid copy when returning python numpy / array [\#139](https://github.com/EthicalML/vulkan-kompute/issues/139) -- Cover all Python & C++ tests in CI [\#121](https://github.com/EthicalML/vulkan-kompute/issues/121) -- Add C++ Test for Simple Work Groups Example [\#117](https://github.com/EthicalML/vulkan-kompute/issues/117) -- Expose push constants in OpAlgo [\#54](https://github.com/EthicalML/vulkan-kompute/issues/54) -- Expose ability to create barriers in OpTensor operations [\#45](https://github.com/EthicalML/vulkan-kompute/issues/45) -- Create delete function in manager to free / destroy sequence [\#36](https://github.com/EthicalML/vulkan-kompute/issues/36) -- Make specialisation data extensible [\#12](https://github.com/EthicalML/vulkan-kompute/issues/12) -- Support multiple types for Kompute Tensors [\#2](https://github.com/EthicalML/vulkan-kompute/issues/2) -- Added re-record sequence functionality and updated docs [\#171](https://github.com/EthicalML/vulkan-kompute/pull/171) ([axsaucedo](https://github.com/axsaucedo)) -- Extend non-spdlog print functions to use fmt::format / fmt::print [\#159](https://github.com/EthicalML/vulkan-kompute/pull/159) ([axsaucedo](https://github.com/axsaucedo)) -- Added support for custom SpecializedConstants and removed KomputeWorkgroup class [\#151](https://github.com/EthicalML/vulkan-kompute/pull/151) ([axsaucedo](https://github.com/axsaucedo)) -- Added destroy functions for tensors and sequences \(named and object\) [\#146](https://github.com/EthicalML/vulkan-kompute/pull/146) ([axsaucedo](https://github.com/axsaucedo)) +- Extend non-spdlog print functions to use std::format [\#158](https://github.com/KomputeFoundation/kompute/issues/158) +- Add code coverage reports with codecov [\#145](https://github.com/KomputeFoundation/kompute/issues/145) +- Explore removing `std::vector mData;` completely from Tensor in favour of always storing data in hostVisible buffer memory \(TBC\) [\#144](https://github.com/KomputeFoundation/kompute/issues/144) +- Update all examples to match breaking changes in 0.7.0 [\#141](https://github.com/KomputeFoundation/kompute/issues/141) +- Avoid copy when returning python numpy / array [\#139](https://github.com/KomputeFoundation/kompute/issues/139) +- Cover all Python & C++ tests in CI [\#121](https://github.com/KomputeFoundation/kompute/issues/121) +- Add C++ Test for Simple Work Groups Example [\#117](https://github.com/KomputeFoundation/kompute/issues/117) +- Expose push constants in OpAlgo [\#54](https://github.com/KomputeFoundation/kompute/issues/54) +- Expose ability to create barriers in OpTensor operations [\#45](https://github.com/KomputeFoundation/kompute/issues/45) +- Create delete function in manager to free / destroy sequence [\#36](https://github.com/KomputeFoundation/kompute/issues/36) +- Make specialisation data extensible [\#12](https://github.com/KomputeFoundation/kompute/issues/12) +- Support multiple types for Kompute Tensors [\#2](https://github.com/KomputeFoundation/kompute/issues/2) +- Added re-record sequence functionality and updated docs [\#171](https://github.com/KomputeFoundation/kompute/pull/171) ([axsaucedo](https://github.com/axsaucedo)) +- Extend non-spdlog print functions to use fmt::format / fmt::print [\#159](https://github.com/KomputeFoundation/kompute/pull/159) ([axsaucedo](https://github.com/axsaucedo)) +- Added support for custom SpecializedConstants and removed KomputeWorkgroup class [\#151](https://github.com/KomputeFoundation/kompute/pull/151) ([axsaucedo](https://github.com/axsaucedo)) +- Added destroy functions for tensors and sequences \(named and object\) [\#146](https://github.com/KomputeFoundation/kompute/pull/146) ([axsaucedo](https://github.com/axsaucedo)) **Fixed bugs:** -- push\_constant not working in my case? [\#168](https://github.com/EthicalML/vulkan-kompute/issues/168) -- DescriptorPool set is not being freed [\#155](https://github.com/EthicalML/vulkan-kompute/issues/155) -- Updated memory barriers to include staging buffers [\#182](https://github.com/EthicalML/vulkan-kompute/pull/182) ([axsaucedo](https://github.com/axsaucedo)) -- Adds push const ranges in pipelinelayout to fix \#168 [\#174](https://github.com/EthicalML/vulkan-kompute/pull/174) ([axsaucedo](https://github.com/axsaucedo)) -- Added destructor for staging tensors [\#134](https://github.com/EthicalML/vulkan-kompute/pull/134) ([axsaucedo](https://github.com/axsaucedo)) +- push\_constant not working in my case? [\#168](https://github.com/KomputeFoundation/kompute/issues/168) +- DescriptorPool set is not being freed [\#155](https://github.com/KomputeFoundation/kompute/issues/155) +- Updated memory barriers to include staging buffers [\#182](https://github.com/KomputeFoundation/kompute/pull/182) ([axsaucedo](https://github.com/axsaucedo)) +- Adds push const ranges in pipelinelayout to fix \#168 [\#174](https://github.com/KomputeFoundation/kompute/pull/174) ([axsaucedo](https://github.com/axsaucedo)) +- Added destructor for staging tensors [\#134](https://github.com/KomputeFoundation/kompute/pull/134) ([axsaucedo](https://github.com/axsaucedo)) **Closed issues:** -- Update memory barriers to align with tensor staging/primary memory revamp [\#181](https://github.com/EthicalML/vulkan-kompute/issues/181) -- Move shader defaultResource inside kp_test_utils::Shader class [\#175](https://github.com/EthicalML/vulkan-kompute/issues/175) -- Reach at least 90% code coverage on tests [\#170](https://github.com/EthicalML/vulkan-kompute/issues/170) -- Add functionality to re-record sequence as now it's possible to update the underlying algorithm [\#169](https://github.com/EthicalML/vulkan-kompute/issues/169) -- Use numpy arrays as default return value [\#166](https://github.com/EthicalML/vulkan-kompute/issues/166) -- Update all shared\_ptr value passes to be by ref or const ref [\#161](https://github.com/EthicalML/vulkan-kompute/issues/161) -- Amend memory hierarchy for kp::Operations so they can be created separately [\#160](https://github.com/EthicalML/vulkan-kompute/issues/160) -- Customise theme of documentation [\#156](https://github.com/EthicalML/vulkan-kompute/issues/156) -- Remove KomputeWorkgroup class in favour of std::array\ [\#152](https://github.com/EthicalML/vulkan-kompute/issues/152) -- Passing raw GLSL string to Shader Module depricated so remove this method from supported approach [\#150](https://github.com/EthicalML/vulkan-kompute/issues/150) -- Add python backwards compatibility for eval\_tensor\_create\_def [\#147](https://github.com/EthicalML/vulkan-kompute/issues/147) -- Document breaking changes for 0.7.0 [\#140](https://github.com/EthicalML/vulkan-kompute/issues/140) -- Tensor memory management and memory hierarchy redesign [\#136](https://github.com/EthicalML/vulkan-kompute/issues/136) -- Staging tensor GPU memory is not freed as part of OpCreateTensor removal [\#133](https://github.com/EthicalML/vulkan-kompute/issues/133) -- eStorage Tensors are currently unusable as OpTensorCreate calls mapDataIntoHostMemory [\#132](https://github.com/EthicalML/vulkan-kompute/issues/132) -- 0.6.0 Release [\#126](https://github.com/EthicalML/vulkan-kompute/issues/126) -- java.lang.UnsatisfiedLinkError: dlopen failed: library "libkompute-jni.so" not found [\#125](https://github.com/EthicalML/vulkan-kompute/issues/125) -- Initial exploration: Include explicit GLSL to SPIRV compilation [\#107](https://github.com/EthicalML/vulkan-kompute/issues/107) -- Add support for push constants [\#106](https://github.com/EthicalML/vulkan-kompute/issues/106) +- Update memory barriers to align with tensor staging/primary memory revamp [\#181](https://github.com/KomputeFoundation/kompute/issues/181) +- Move shader defaultResource inside kp_test_utils::Shader class [\#175](https://github.com/KomputeFoundation/kompute/issues/175) +- Reach at least 90% code coverage on tests [\#170](https://github.com/KomputeFoundation/kompute/issues/170) +- Add functionality to re-record sequence as now it's possible to update the underlying algorithm [\#169](https://github.com/KomputeFoundation/kompute/issues/169) +- Use numpy arrays as default return value [\#166](https://github.com/KomputeFoundation/kompute/issues/166) +- Update all shared\_ptr value passes to be by ref or const ref [\#161](https://github.com/KomputeFoundation/kompute/issues/161) +- Amend memory hierarchy for kp::Operations so they can be created separately [\#160](https://github.com/KomputeFoundation/kompute/issues/160) +- Customise theme of documentation [\#156](https://github.com/KomputeFoundation/kompute/issues/156) +- Remove KomputeWorkgroup class in favour of std::array\ [\#152](https://github.com/KomputeFoundation/kompute/issues/152) +- Passing raw GLSL string to Shader Module depricated so remove this method from supported approach [\#150](https://github.com/KomputeFoundation/kompute/issues/150) +- Add python backwards compatibility for eval\_tensor\_create\_def [\#147](https://github.com/KomputeFoundation/kompute/issues/147) +- Document breaking changes for 0.7.0 [\#140](https://github.com/KomputeFoundation/kompute/issues/140) +- Tensor memory management and memory hierarchy redesign [\#136](https://github.com/KomputeFoundation/kompute/issues/136) +- Staging tensor GPU memory is not freed as part of OpCreateTensor removal [\#133](https://github.com/KomputeFoundation/kompute/issues/133) +- eStorage Tensors are currently unusable as OpTensorCreate calls mapDataIntoHostMemory [\#132](https://github.com/KomputeFoundation/kompute/issues/132) +- 0.6.0 Release [\#126](https://github.com/KomputeFoundation/kompute/issues/126) +- java.lang.UnsatisfiedLinkError: dlopen failed: library "libkompute-jni.so" not found [\#125](https://github.com/KomputeFoundation/kompute/issues/125) +- Initial exploration: Include explicit GLSL to SPIRV compilation [\#107](https://github.com/KomputeFoundation/kompute/issues/107) +- Add support for push constants [\#106](https://github.com/KomputeFoundation/kompute/issues/106) **Merged pull requests:** -- Resolve moving all functions from tensor HPP to CPP [\#186](https://github.com/EthicalML/vulkan-kompute/pull/186) ([axsaucedo](https://github.com/axsaucedo)) -- Device Properties [\#184](https://github.com/EthicalML/vulkan-kompute/pull/184) ([alexander-g](https://github.com/alexander-g)) -- Too many warnings [\#183](https://github.com/EthicalML/vulkan-kompute/pull/183) ([alexander-g](https://github.com/alexander-g)) -- Add support for bool, double, int32, uint32 and float32 on Tensors via TensorT [\#177](https://github.com/EthicalML/vulkan-kompute/pull/177) ([axsaucedo](https://github.com/axsaucedo)) -- Support for Timestamping [\#176](https://github.com/EthicalML/vulkan-kompute/pull/176) ([alexander-g](https://github.com/alexander-g)) -- Test for ShaderResources [\#165](https://github.com/EthicalML/vulkan-kompute/pull/165) ([aliPMPAINT](https://github.com/aliPMPAINT)) -- Amend memory hierarchy to enable for push constants and functional interface for more flexible operations [\#164](https://github.com/EthicalML/vulkan-kompute/pull/164) ([axsaucedo](https://github.com/axsaucedo)) -- made changes for include paths for complete installation [\#163](https://github.com/EthicalML/vulkan-kompute/pull/163) ([aliPMPAINT](https://github.com/aliPMPAINT)) -- Added dark mode on docs [\#157](https://github.com/EthicalML/vulkan-kompute/pull/157) ([axsaucedo](https://github.com/axsaucedo)) -- Glslang implementation for online shader compilation [\#154](https://github.com/EthicalML/vulkan-kompute/pull/154) ([axsaucedo](https://github.com/axsaucedo)) -- Adding test code coverage using gcov and lcov [\#149](https://github.com/EthicalML/vulkan-kompute/pull/149) ([axsaucedo](https://github.com/axsaucedo)) -- Added temporary backwards compatibility for eval\_tensor\_create\_def function [\#148](https://github.com/EthicalML/vulkan-kompute/pull/148) ([axsaucedo](https://github.com/axsaucedo)) -- Amend memory ownership hierarchy to have Tensor owned by Manager instead of OpCreateTensor / OpBase [\#138](https://github.com/EthicalML/vulkan-kompute/pull/138) ([axsaucedo](https://github.com/axsaucedo)) -- Removed Staging Tensors in favour of having two buffer & memory in a Tensor to minimise data transfer [\#137](https://github.com/EthicalML/vulkan-kompute/pull/137) ([axsaucedo](https://github.com/axsaucedo)) +- Resolve moving all functions from tensor HPP to CPP [\#186](https://github.com/KomputeFoundation/kompute/pull/186) ([axsaucedo](https://github.com/axsaucedo)) +- Device Properties [\#184](https://github.com/KomputeFoundation/kompute/pull/184) ([alexander-g](https://github.com/alexander-g)) +- Too many warnings [\#183](https://github.com/KomputeFoundation/kompute/pull/183) ([alexander-g](https://github.com/alexander-g)) +- Add support for bool, double, int32, uint32 and float32 on Tensors via TensorT [\#177](https://github.com/KomputeFoundation/kompute/pull/177) ([axsaucedo](https://github.com/axsaucedo)) +- Support for Timestamping [\#176](https://github.com/KomputeFoundation/kompute/pull/176) ([alexander-g](https://github.com/alexander-g)) +- Test for ShaderResources [\#165](https://github.com/KomputeFoundation/kompute/pull/165) ([aliPMPAINT](https://github.com/aliPMPAINT)) +- Amend memory hierarchy to enable for push constants and functional interface for more flexible operations [\#164](https://github.com/KomputeFoundation/kompute/pull/164) ([axsaucedo](https://github.com/axsaucedo)) +- made changes for include paths for complete installation [\#163](https://github.com/KomputeFoundation/kompute/pull/163) ([aliPMPAINT](https://github.com/aliPMPAINT)) +- Added dark mode on docs [\#157](https://github.com/KomputeFoundation/kompute/pull/157) ([axsaucedo](https://github.com/axsaucedo)) +- Glslang implementation for online shader compilation [\#154](https://github.com/KomputeFoundation/kompute/pull/154) ([axsaucedo](https://github.com/axsaucedo)) +- Adding test code coverage using gcov and lcov [\#149](https://github.com/KomputeFoundation/kompute/pull/149) ([axsaucedo](https://github.com/axsaucedo)) +- Added temporary backwards compatibility for eval\_tensor\_create\_def function [\#148](https://github.com/KomputeFoundation/kompute/pull/148) ([axsaucedo](https://github.com/axsaucedo)) +- Amend memory ownership hierarchy to have Tensor owned by Manager instead of OpCreateTensor / OpBase [\#138](https://github.com/KomputeFoundation/kompute/pull/138) ([axsaucedo](https://github.com/axsaucedo)) +- Removed Staging Tensors in favour of having two buffer & memory in a Tensor to minimise data transfer [\#137](https://github.com/KomputeFoundation/kompute/pull/137) ([axsaucedo](https://github.com/axsaucedo)) -## [v0.6.0](https://github.com/EthicalML/vulkan-kompute/tree/v0.6.0) (2021-01-31) +## [v0.6.0](https://github.com/KomputeFoundation/kompute/tree/v0.6.0) (2021-01-31) -[Full Changelog](https://github.com/EthicalML/vulkan-kompute/compare/v0.5.1...v0.6.0) +[Full Changelog](https://github.com/KomputeFoundation/kompute/compare/v0.5.1...v0.6.0) **Implemented enhancements:** -- Add simple test for Python `log\_level` function [\#120](https://github.com/EthicalML/vulkan-kompute/issues/120) -- Add further numpy support [\#104](https://github.com/EthicalML/vulkan-kompute/issues/104) -- SWIG syntax error - change order of keywords. [\#94](https://github.com/EthicalML/vulkan-kompute/issues/94) -- Create mocks to isolate unit tests for components [\#8](https://github.com/EthicalML/vulkan-kompute/issues/8) -- Disallowing zero sized tensors [\#129](https://github.com/EthicalML/vulkan-kompute/pull/129) ([alexander-g](https://github.com/alexander-g)) -- Added further tests to CI and provide Dockerimage with builds to swiftshader [\#119](https://github.com/EthicalML/vulkan-kompute/pull/119) ([axsaucedo](https://github.com/axsaucedo)) -- Workgroups for Python [\#116](https://github.com/EthicalML/vulkan-kompute/pull/116) ([alexander-g](https://github.com/alexander-g)) -- Ubuntu CI [\#115](https://github.com/EthicalML/vulkan-kompute/pull/115) ([alexander-g](https://github.com/alexander-g)) -- Faster set\_data\(\) [\#109](https://github.com/EthicalML/vulkan-kompute/pull/109) ([alexander-g](https://github.com/alexander-g)) -- String parameter for eval\_algo\_str methods in Python [\#105](https://github.com/EthicalML/vulkan-kompute/pull/105) ([alexander-g](https://github.com/alexander-g)) -- Added numpy\(\) method [\#103](https://github.com/EthicalML/vulkan-kompute/pull/103) ([alexander-g](https://github.com/alexander-g)) +- Add simple test for Python `log\_level` function [\#120](https://github.com/KomputeFoundation/kompute/issues/120) +- Add further numpy support [\#104](https://github.com/KomputeFoundation/kompute/issues/104) +- SWIG syntax error - change order of keywords. [\#94](https://github.com/KomputeFoundation/kompute/issues/94) +- Create mocks to isolate unit tests for components [\#8](https://github.com/KomputeFoundation/kompute/issues/8) +- Disallowing zero sized tensors [\#129](https://github.com/KomputeFoundation/kompute/pull/129) ([alexander-g](https://github.com/alexander-g)) +- Added further tests to CI and provide Dockerimage with builds to swiftshader [\#119](https://github.com/KomputeFoundation/kompute/pull/119) ([axsaucedo](https://github.com/axsaucedo)) +- Workgroups for Python [\#116](https://github.com/KomputeFoundation/kompute/pull/116) ([alexander-g](https://github.com/alexander-g)) +- Ubuntu CI [\#115](https://github.com/KomputeFoundation/kompute/pull/115) ([alexander-g](https://github.com/alexander-g)) +- Faster set\_data\(\) [\#109](https://github.com/KomputeFoundation/kompute/pull/109) ([alexander-g](https://github.com/alexander-g)) +- String parameter for eval\_algo\_str methods in Python [\#105](https://github.com/KomputeFoundation/kompute/pull/105) ([alexander-g](https://github.com/alexander-g)) +- Added numpy\(\) method [\#103](https://github.com/KomputeFoundation/kompute/pull/103) ([alexander-g](https://github.com/alexander-g)) **Fixed bugs:** -- \[PYTHON\] Support string parameter instead of list for eval\_algo\_data when passing raw shader as string [\#93](https://github.com/EthicalML/vulkan-kompute/issues/93) -- \[PYTHON\] Fix log\_level on the python implementation \(using pybind's logging functions\) [\#92](https://github.com/EthicalML/vulkan-kompute/issues/92) +- \[PYTHON\] Support string parameter instead of list for eval\_algo\_data when passing raw shader as string [\#93](https://github.com/KomputeFoundation/kompute/issues/93) +- \[PYTHON\] Fix log\_level on the python implementation \(using pybind's logging functions\) [\#92](https://github.com/KomputeFoundation/kompute/issues/92) **Closed issues:** -- Add documentation for custom operations [\#128](https://github.com/EthicalML/vulkan-kompute/issues/128) -- Numpy Array Support and Work Group Configuration in Python Kompute [\#124](https://github.com/EthicalML/vulkan-kompute/issues/124) -- Remove references to spdlog in python module [\#122](https://github.com/EthicalML/vulkan-kompute/issues/122) -- Setup automated CI testing for PRs using GitHub actions [\#114](https://github.com/EthicalML/vulkan-kompute/issues/114) -- Python example type error \(pyshader\). [\#111](https://github.com/EthicalML/vulkan-kompute/issues/111) -- Update all references to operations to not use template [\#101](https://github.com/EthicalML/vulkan-kompute/issues/101) -- Getting a undefined reference error while creating a Kompute Manager [\#100](https://github.com/EthicalML/vulkan-kompute/issues/100) +- Add documentation for custom operations [\#128](https://github.com/KomputeFoundation/kompute/issues/128) +- Numpy Array Support and Work Group Configuration in Python Kompute [\#124](https://github.com/KomputeFoundation/kompute/issues/124) +- Remove references to spdlog in python module [\#122](https://github.com/KomputeFoundation/kompute/issues/122) +- Setup automated CI testing for PRs using GitHub actions [\#114](https://github.com/KomputeFoundation/kompute/issues/114) +- Python example type error \(pyshader\). [\#111](https://github.com/KomputeFoundation/kompute/issues/111) +- Update all references to operations to not use template [\#101](https://github.com/KomputeFoundation/kompute/issues/101) +- Getting a undefined reference error while creating a Kompute Manager [\#100](https://github.com/KomputeFoundation/kompute/issues/100) **Merged pull requests:** -- 122 remove spdlog references in python [\#123](https://github.com/EthicalML/vulkan-kompute/pull/123) ([axsaucedo](https://github.com/axsaucedo)) -- Native logging for Python [\#118](https://github.com/EthicalML/vulkan-kompute/pull/118) ([alexander-g](https://github.com/alexander-g)) -- Fixes for the c++ Simple and Extended examples in readme [\#108](https://github.com/EthicalML/vulkan-kompute/pull/108) ([aliPMPAINT](https://github.com/aliPMPAINT)) -- Fix building shaders on native linux [\#102](https://github.com/EthicalML/vulkan-kompute/pull/102) ([aliPMPAINT](https://github.com/aliPMPAINT)) +- 122 remove spdlog references in python [\#123](https://github.com/KomputeFoundation/kompute/pull/123) ([axsaucedo](https://github.com/axsaucedo)) +- Native logging for Python [\#118](https://github.com/KomputeFoundation/kompute/pull/118) ([alexander-g](https://github.com/alexander-g)) +- Fixes for the c++ Simple and Extended examples in readme [\#108](https://github.com/KomputeFoundation/kompute/pull/108) ([aliPMPAINT](https://github.com/aliPMPAINT)) +- Fix building shaders on native linux [\#102](https://github.com/KomputeFoundation/kompute/pull/102) ([aliPMPAINT](https://github.com/aliPMPAINT)) -## [v0.5.1](https://github.com/EthicalML/vulkan-kompute/tree/v0.5.1) (2020-11-12) +## [v0.5.1](https://github.com/KomputeFoundation/kompute/tree/v0.5.1) (2020-11-12) -[Full Changelog](https://github.com/EthicalML/vulkan-kompute/compare/v0.5.0...v0.5.1) +[Full Changelog](https://github.com/KomputeFoundation/kompute/compare/v0.5.0...v0.5.1) **Implemented enhancements:** -- Remove the template params from OpAlgoBase for dispatch layout [\#57](https://github.com/EthicalML/vulkan-kompute/issues/57) -- Enable layout to be configured dynamically within shaders [\#26](https://github.com/EthicalML/vulkan-kompute/issues/26) -- replaced "static unsigned const" to "static const unsigned" to avoid SWIG parsing error. [\#95](https://github.com/EthicalML/vulkan-kompute/pull/95) ([0x0f0f0f](https://github.com/0x0f0f0f)) +- Remove the template params from OpAlgoBase for dispatch layout [\#57](https://github.com/KomputeFoundation/kompute/issues/57) +- Enable layout to be configured dynamically within shaders [\#26](https://github.com/KomputeFoundation/kompute/issues/26) +- replaced "static unsigned const" to "static const unsigned" to avoid SWIG parsing error. [\#95](https://github.com/KomputeFoundation/kompute/pull/95) ([0x0f0f0f](https://github.com/0x0f0f0f)) **Closed issues:** -- Support for MoltenVK? [\#96](https://github.com/EthicalML/vulkan-kompute/issues/96) -- Update all examples to use spir-v bytes by default [\#86](https://github.com/EthicalML/vulkan-kompute/issues/86) +- Support for MoltenVK? [\#96](https://github.com/KomputeFoundation/kompute/issues/96) +- Update all examples to use spir-v bytes by default [\#86](https://github.com/KomputeFoundation/kompute/issues/86) **Merged pull requests:** -- Python extensions for end to end example [\#97](https://github.com/EthicalML/vulkan-kompute/pull/97) ([axsaucedo](https://github.com/axsaucedo)) +- Python extensions for end to end example [\#97](https://github.com/KomputeFoundation/kompute/pull/97) ([axsaucedo](https://github.com/axsaucedo)) -## [v0.5.0](https://github.com/EthicalML/vulkan-kompute/tree/v0.5.0) (2020-11-08) +## [v0.5.0](https://github.com/KomputeFoundation/kompute/tree/v0.5.0) (2020-11-08) -[Full Changelog](https://github.com/EthicalML/vulkan-kompute/compare/v0.4.1...v0.5.0) +[Full Changelog](https://github.com/KomputeFoundation/kompute/compare/v0.4.1...v0.5.0) **Implemented enhancements:** -- Adding Python package for Kompute [\#87](https://github.com/EthicalML/vulkan-kompute/issues/87) -- Python shader extension [\#91](https://github.com/EthicalML/vulkan-kompute/pull/91) ([axsaucedo](https://github.com/axsaucedo)) -- Enhanced python build [\#89](https://github.com/EthicalML/vulkan-kompute/pull/89) ([axsaucedo](https://github.com/axsaucedo)) -- Added python bindings with kp as python module [\#88](https://github.com/EthicalML/vulkan-kompute/pull/88) ([axsaucedo](https://github.com/axsaucedo)) +- Adding Python package for Kompute [\#87](https://github.com/KomputeFoundation/kompute/issues/87) +- Python shader extension [\#91](https://github.com/KomputeFoundation/kompute/pull/91) ([axsaucedo](https://github.com/axsaucedo)) +- Enhanced python build [\#89](https://github.com/KomputeFoundation/kompute/pull/89) ([axsaucedo](https://github.com/axsaucedo)) +- Added python bindings with kp as python module [\#88](https://github.com/KomputeFoundation/kompute/pull/88) ([axsaucedo](https://github.com/axsaucedo)) **Closed issues:** -- Examples segfault \(Linux / mesa / amdgpu\) [\#84](https://github.com/EthicalML/vulkan-kompute/issues/84) -- Kompute support for newer Vulkan HPP headers [\#81](https://github.com/EthicalML/vulkan-kompute/issues/81) +- Examples segfault \(Linux / mesa / amdgpu\) [\#84](https://github.com/KomputeFoundation/kompute/issues/84) +- Kompute support for newer Vulkan HPP headers [\#81](https://github.com/KomputeFoundation/kompute/issues/81) -## [v0.4.1](https://github.com/EthicalML/vulkan-kompute/tree/v0.4.1) (2020-11-01) +## [v0.4.1](https://github.com/KomputeFoundation/kompute/tree/v0.4.1) (2020-11-01) -[Full Changelog](https://github.com/EthicalML/vulkan-kompute/compare/v0.4.0...v0.4.1) +[Full Changelog](https://github.com/KomputeFoundation/kompute/compare/v0.4.0...v0.4.1) **Implemented enhancements:** -- Upgrade build to support VulkanHPP 1.2.154 \< 1.2.158 [\#82](https://github.com/EthicalML/vulkan-kompute/issues/82) -- Add Android example for Kompute [\#23](https://github.com/EthicalML/vulkan-kompute/issues/23) -- Fix compatibility for Vulkan HPP 1.2.155 and above [\#83](https://github.com/EthicalML/vulkan-kompute/pull/83) ([axsaucedo](https://github.com/axsaucedo)) -- codespell spelling fixes [\#80](https://github.com/EthicalML/vulkan-kompute/pull/80) ([pH5](https://github.com/pH5)) +- Upgrade build to support VulkanHPP 1.2.154 \< 1.2.158 [\#82](https://github.com/KomputeFoundation/kompute/issues/82) +- Add Android example for Kompute [\#23](https://github.com/KomputeFoundation/kompute/issues/23) +- Fix compatibility for Vulkan HPP 1.2.155 and above [\#83](https://github.com/KomputeFoundation/kompute/pull/83) ([axsaucedo](https://github.com/axsaucedo)) +- codespell spelling fixes [\#80](https://github.com/KomputeFoundation/kompute/pull/80) ([pH5](https://github.com/pH5)) **Closed issues:** -- Android example throws runtime error. [\#77](https://github.com/EthicalML/vulkan-kompute/issues/77) -- Document the utilities to convert shaders into C++ header files [\#53](https://github.com/EthicalML/vulkan-kompute/issues/53) -- Document the three types of memory ownership in classes - never, optional and always [\#31](https://github.com/EthicalML/vulkan-kompute/issues/31) +- Android example throws runtime error. [\#77](https://github.com/KomputeFoundation/kompute/issues/77) +- Document the utilities to convert shaders into C++ header files [\#53](https://github.com/KomputeFoundation/kompute/issues/53) +- Document the three types of memory ownership in classes - never, optional and always [\#31](https://github.com/KomputeFoundation/kompute/issues/31) **Merged pull requests:** -- Add link to official Vulkan website to download the SDK [\#79](https://github.com/EthicalML/vulkan-kompute/pull/79) ([DonaldWhyte](https://github.com/DonaldWhyte)) -- 77 Fix end to end examples by creating tensors on separate sequence [\#78](https://github.com/EthicalML/vulkan-kompute/pull/78) ([axsaucedo](https://github.com/axsaucedo)) +- Add link to official Vulkan website to download the SDK [\#79](https://github.com/KomputeFoundation/kompute/pull/79) ([DonaldWhyte](https://github.com/DonaldWhyte)) +- 77 Fix end to end examples by creating tensors on separate sequence [\#78](https://github.com/KomputeFoundation/kompute/pull/78) ([axsaucedo](https://github.com/axsaucedo)) -## [v0.4.0](https://github.com/EthicalML/vulkan-kompute/tree/v0.4.0) (2020-10-18) +## [v0.4.0](https://github.com/KomputeFoundation/kompute/tree/v0.4.0) (2020-10-18) -[Full Changelog](https://github.com/EthicalML/vulkan-kompute/compare/v0.3.2...v0.4.0) +[Full Changelog](https://github.com/KomputeFoundation/kompute/compare/v0.3.2...v0.4.0) **Implemented enhancements:** -- Error compiling on ubuntu 20.04 [\#67](https://github.com/EthicalML/vulkan-kompute/issues/67) -- Add explicit multi-threading interfaces to ensure correctness when running in parallel [\#51](https://github.com/EthicalML/vulkan-kompute/issues/51) +- Error compiling on ubuntu 20.04 [\#67](https://github.com/KomputeFoundation/kompute/issues/67) +- Add explicit multi-threading interfaces to ensure correctness when running in parallel [\#51](https://github.com/KomputeFoundation/kompute/issues/51) **Fixed bugs:** -- Ensure sequences are cleared when begin is run [\#74](https://github.com/EthicalML/vulkan-kompute/issues/74) +- Ensure sequences are cleared when begin is run [\#74](https://github.com/KomputeFoundation/kompute/issues/74) **Merged pull requests:** -- 74 Fixing manager default sequence creation [\#75](https://github.com/EthicalML/vulkan-kompute/pull/75) ([axsaucedo](https://github.com/axsaucedo)) -- Adding Asynchronous Processing Capabilities with Multiple Queue Support [\#73](https://github.com/EthicalML/vulkan-kompute/pull/73) ([axsaucedo](https://github.com/axsaucedo)) -- Fix README typo [\#71](https://github.com/EthicalML/vulkan-kompute/pull/71) ([nihui](https://github.com/nihui)) +- 74 Fixing manager default sequence creation [\#75](https://github.com/KomputeFoundation/kompute/pull/75) ([axsaucedo](https://github.com/axsaucedo)) +- Adding Asynchronous Processing Capabilities with Multiple Queue Support [\#73](https://github.com/KomputeFoundation/kompute/pull/73) ([axsaucedo](https://github.com/axsaucedo)) +- Fix README typo [\#71](https://github.com/KomputeFoundation/kompute/pull/71) ([nihui](https://github.com/nihui)) -## [v0.3.2](https://github.com/EthicalML/vulkan-kompute/tree/v0.3.2) (2020-10-04) +## [v0.3.2](https://github.com/KomputeFoundation/kompute/tree/v0.3.2) (2020-10-04) -[Full Changelog](https://github.com/EthicalML/vulkan-kompute/compare/v0.3.1...v0.3.2) +[Full Changelog](https://github.com/KomputeFoundation/kompute/compare/v0.3.1...v0.3.2) **Implemented enhancements:** -- Fix compiler errors on compilers other than msvc [\#66](https://github.com/EthicalML/vulkan-kompute/pull/66) ([Dudecake](https://github.com/Dudecake)) +- Fix compiler errors on compilers other than msvc [\#66](https://github.com/KomputeFoundation/kompute/pull/66) ([Dudecake](https://github.com/Dudecake)) **Fixed bugs:** -- Fix bug in OpAlgoRhsLhs [\#61](https://github.com/EthicalML/vulkan-kompute/issues/61) +- Fix bug in OpAlgoRhsLhs [\#61](https://github.com/KomputeFoundation/kompute/issues/61) **Closed issues:** -- Change c++ to 14 from 17 for support with older frameworks [\#59](https://github.com/EthicalML/vulkan-kompute/issues/59) +- Change c++ to 14 from 17 for support with older frameworks [\#59](https://github.com/KomputeFoundation/kompute/issues/59) **Merged pull requests:** -- Updated readme and single kompute for 0.3.2 [\#69](https://github.com/EthicalML/vulkan-kompute/pull/69) ([axsaucedo](https://github.com/axsaucedo)) -- Added android example and upgraded build configurations [\#68](https://github.com/EthicalML/vulkan-kompute/pull/68) ([axsaucedo](https://github.com/axsaucedo)) -- Added readme to explain high level explanation for Godot example [\#65](https://github.com/EthicalML/vulkan-kompute/pull/65) ([axsaucedo](https://github.com/axsaucedo)) -- Removing vulkan dependencies in examples [\#64](https://github.com/EthicalML/vulkan-kompute/pull/64) ([axsaucedo](https://github.com/axsaucedo)) -- Updated godot example to use logistic regression usecase [\#63](https://github.com/EthicalML/vulkan-kompute/pull/63) ([axsaucedo](https://github.com/axsaucedo)) +- Updated readme and single kompute for 0.3.2 [\#69](https://github.com/KomputeFoundation/kompute/pull/69) ([axsaucedo](https://github.com/axsaucedo)) +- Added android example and upgraded build configurations [\#68](https://github.com/KomputeFoundation/kompute/pull/68) ([axsaucedo](https://github.com/axsaucedo)) +- Added readme to explain high level explanation for Godot example [\#65](https://github.com/KomputeFoundation/kompute/pull/65) ([axsaucedo](https://github.com/axsaucedo)) +- Removing vulkan dependencies in examples [\#64](https://github.com/KomputeFoundation/kompute/pull/64) ([axsaucedo](https://github.com/axsaucedo)) +- Updated godot example to use logistic regression usecase [\#63](https://github.com/KomputeFoundation/kompute/pull/63) ([axsaucedo](https://github.com/axsaucedo)) -## [v0.3.1](https://github.com/EthicalML/vulkan-kompute/tree/v0.3.1) (2020-09-20) +## [v0.3.1](https://github.com/KomputeFoundation/kompute/tree/v0.3.1) (2020-09-20) -[Full Changelog](https://github.com/EthicalML/vulkan-kompute/compare/v0.3.0...v0.3.1) +[Full Changelog](https://github.com/KomputeFoundation/kompute/compare/v0.3.0...v0.3.1) **Implemented enhancements:** -- Add example of how vulkan kompute can be used for ML in Godot Game Engine [\#60](https://github.com/EthicalML/vulkan-kompute/issues/60) +- Add example of how vulkan kompute can be used for ML in Godot Game Engine [\#60](https://github.com/KomputeFoundation/kompute/issues/60) **Merged pull requests:** -- Adding godot example [\#62](https://github.com/EthicalML/vulkan-kompute/pull/62) ([axsaucedo](https://github.com/axsaucedo)) +- Adding godot example [\#62](https://github.com/KomputeFoundation/kompute/pull/62) ([axsaucedo](https://github.com/axsaucedo)) -## [v0.3.0](https://github.com/EthicalML/vulkan-kompute/tree/v0.3.0) (2020-09-19) +## [v0.3.0](https://github.com/KomputeFoundation/kompute/tree/v0.3.0) (2020-09-19) -[Full Changelog](https://github.com/EthicalML/vulkan-kompute/compare/0.3.0...v0.3.0) +[Full Changelog](https://github.com/KomputeFoundation/kompute/compare/0.3.0...v0.3.0) **Implemented enhancements:** -- Make Kompute installable locally to work with examples [\#58](https://github.com/EthicalML/vulkan-kompute/issues/58) -- Remove ability to copy output parameters from OpAlgoBase now that there's OpTensorSync [\#56](https://github.com/EthicalML/vulkan-kompute/issues/56) +- Make Kompute installable locally to work with examples [\#58](https://github.com/KomputeFoundation/kompute/issues/58) +- Remove ability to copy output parameters from OpAlgoBase now that there's OpTensorSync [\#56](https://github.com/KomputeFoundation/kompute/issues/56) -## [0.3.0](https://github.com/EthicalML/vulkan-kompute/tree/0.3.0) (2020-09-13) +## [0.3.0](https://github.com/KomputeFoundation/kompute/tree/0.3.0) (2020-09-13) -[Full Changelog](https://github.com/EthicalML/vulkan-kompute/compare/v0.2.0...0.3.0) +[Full Changelog](https://github.com/KomputeFoundation/kompute/compare/v0.2.0...0.3.0) **Implemented enhancements:** -- Add tests and documentation for loops passing data to/from device [\#50](https://github.com/EthicalML/vulkan-kompute/issues/50) -- Add preSubmit function to OpBase to account for multiple eval commands in parallel [\#47](https://github.com/EthicalML/vulkan-kompute/issues/47) -- Remove vulkan commandbuffer from Tensor [\#42](https://github.com/EthicalML/vulkan-kompute/issues/42) -- Provide further granularity on handling staging tensors [\#40](https://github.com/EthicalML/vulkan-kompute/issues/40) -- Create operation to copy data from local to device memory with staging [\#39](https://github.com/EthicalML/vulkan-kompute/issues/39) -- Add more advanced ML implementations \(starting with LR, then DL, etc\) [\#19](https://github.com/EthicalML/vulkan-kompute/issues/19) +- Add tests and documentation for loops passing data to/from device [\#50](https://github.com/KomputeFoundation/kompute/issues/50) +- Add preSubmit function to OpBase to account for multiple eval commands in parallel [\#47](https://github.com/KomputeFoundation/kompute/issues/47) +- Remove vulkan commandbuffer from Tensor [\#42](https://github.com/KomputeFoundation/kompute/issues/42) +- Provide further granularity on handling staging tensors [\#40](https://github.com/KomputeFoundation/kompute/issues/40) +- Create operation to copy data from local to device memory with staging [\#39](https://github.com/KomputeFoundation/kompute/issues/39) +- Add more advanced ML implementations \(starting with LR, then DL, etc\) [\#19](https://github.com/KomputeFoundation/kompute/issues/19) **Fixed bugs:** -- OpCreateTensor doesn't map data into GPU with OpCreateTensor for host tensors [\#43](https://github.com/EthicalML/vulkan-kompute/issues/43) +- OpCreateTensor doesn't map data into GPU with OpCreateTensor for host tensors [\#43](https://github.com/KomputeFoundation/kompute/issues/43) -## [v0.2.0](https://github.com/EthicalML/vulkan-kompute/tree/v0.2.0) (2020-09-05) +## [v0.2.0](https://github.com/KomputeFoundation/kompute/tree/v0.2.0) (2020-09-05) -[Full Changelog](https://github.com/EthicalML/vulkan-kompute/compare/v0.1.0...v0.2.0) +[Full Changelog](https://github.com/KomputeFoundation/kompute/compare/v0.1.0...v0.2.0) **Implemented enhancements:** -- Migrate to GTest [\#37](https://github.com/EthicalML/vulkan-kompute/issues/37) -- Move all todos in the code into github issues [\#33](https://github.com/EthicalML/vulkan-kompute/issues/33) -- Remove spdlog as a required dependency [\#30](https://github.com/EthicalML/vulkan-kompute/issues/30) -- Improve access to tensor underlying data for speed and ease of access [\#18](https://github.com/EthicalML/vulkan-kompute/issues/18) -- Enable for compute shaders to be provided in raw form [\#17](https://github.com/EthicalML/vulkan-kompute/issues/17) -- Enable OpCreateTensor for more than 1 tensor [\#13](https://github.com/EthicalML/vulkan-kompute/issues/13) -- Add specialisation data to algorithm with default tensor size [\#11](https://github.com/EthicalML/vulkan-kompute/issues/11) -- Add documentation with Doxygen and Sphinx [\#9](https://github.com/EthicalML/vulkan-kompute/issues/9) +- Migrate to GTest [\#37](https://github.com/KomputeFoundation/kompute/issues/37) +- Move all todos in the code into github issues [\#33](https://github.com/KomputeFoundation/kompute/issues/33) +- Remove spdlog as a required dependency [\#30](https://github.com/KomputeFoundation/kompute/issues/30) +- Improve access to tensor underlying data for speed and ease of access [\#18](https://github.com/KomputeFoundation/kompute/issues/18) +- Enable for compute shaders to be provided in raw form [\#17](https://github.com/KomputeFoundation/kompute/issues/17) +- Enable OpCreateTensor for more than 1 tensor [\#13](https://github.com/KomputeFoundation/kompute/issues/13) +- Add specialisation data to algorithm with default tensor size [\#11](https://github.com/KomputeFoundation/kompute/issues/11) +- Add documentation with Doxygen and Sphinx [\#9](https://github.com/KomputeFoundation/kompute/issues/9) **Fixed bugs:** -- Diagnose memory profiling to ensure there are no memory leaks on objects created \[CPU\] [\#15](https://github.com/EthicalML/vulkan-kompute/issues/15) +- Diagnose memory profiling to ensure there are no memory leaks on objects created \[CPU\] [\#15](https://github.com/KomputeFoundation/kompute/issues/15) **Merged pull requests:** -- Migrating to gtest [\#38](https://github.com/EthicalML/vulkan-kompute/pull/38) ([axsaucedo](https://github.com/axsaucedo)) +- Migrating to gtest [\#38](https://github.com/KomputeFoundation/kompute/pull/38) ([axsaucedo](https://github.com/axsaucedo)) -## [v0.1.0](https://github.com/EthicalML/vulkan-kompute/tree/v0.1.0) (2020-08-28) +## [v0.1.0](https://github.com/KomputeFoundation/kompute/tree/v0.1.0) (2020-08-28) -[Full Changelog](https://github.com/EthicalML/vulkan-kompute/compare/2879d3d274967e87087d567bcc659804b1707d0a...v0.1.0) +[Full Changelog](https://github.com/KomputeFoundation/kompute/compare/2879d3d274967e87087d567bcc659804b1707d0a...v0.1.0) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3a9c5b2c1..f7022b3c0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: Apache-2.0 + cmake_minimum_required(VERSION 3.4.1) project(kompute VERSION 0.7.0) diff --git a/LICENSE b/LICENSE index 26947cd23..909597a28 100644 --- a/LICENSE +++ b/LICENSE @@ -1,13 +1,203 @@ -Copyright 2020 The Institute for Ethical AI & Machine Learning -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ - http://www.apache.org/licenses/LICENSE-2.0 + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2020 The Institute for Ethical AI & Machine Learning + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. diff --git a/Makefile b/Makefile index c912f95c7..dffc202ef 100644 --- a/Makefile +++ b/Makefile @@ -68,6 +68,7 @@ mk_cmake: -DKOMPUTE_OPT_BUILD_SINGLE_HEADER=1 \ -DKOMPUTE_OPT_ENABLE_SPDLOG=1 \ -DKOMPUTE_OPT_CODE_COVERAGE=1 \ + -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ $(MK_CMAKE_EXTRA_FLAGS) \ -G "Unix Makefiles" @@ -199,7 +200,10 @@ win_build_xxd: format: $(CLANG_FORMAT_BIN) -i -style="{BasedOnStyle: mozilla, IndentWidth: 4}" src/*.cpp src/include/kompute/*.hpp test/*cpp +static_scan: + cppcheck --project=build/compile_commands.json -iexternal/ + build_changelog: - docker run --rm -it -v "$(PWD)":/usr/local/src/your-app -e CHANGELOG_GITHUB_TOKEN=${CHANGELOG_GITHUB_TOKEN} ferrarimarco/github-changelog-generator:1.15.2 -u EthicalML -p vulkan-kompute + docker run --rm -it -v "$(PWD)":/usr/local/src/your-app -e CHANGELOG_GITHUB_TOKEN=${CHANGELOG_GITHUB_TOKEN} ferrarimarco/github-changelog-generator:1.15.2 -u KomputeFoundation -p kompute chmod 664 CHANGELOG.md # (Read+Write, Read+Write, Read) sed -i -e 's/\(HEAD\|Unreleased\)/v${VERSION}/g' CHANGELOG.md # Replacing unreleased version with latest tag diff --git a/README.md b/README.md index 765b6d6ec..af6994ee4 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ - + @@ -37,13 +37,13 @@ * Robust codebase with [90% unit test code coverage](https://kompute.cc/codecov/) * Advanced use-cases on [machine learning 🤖](https://towardsdatascience.com/machine-learning-and-data-processing-in-the-gpu-with-vulkan-kompute-c9350e5e5d3a), [mobile development 📱](https://towardsdatascience.com/gpu-accelerated-machine-learning-in-your-mobile-applications-using-the-android-ndk-vulkan-kompute-1e9da37b7617) and [game development 🎮](https://towardsdatascience.com/supercharging-game-development-with-gpu-accelerated-ml-using-vulkan-kompute-the-godot-game-engine-4e75a84ea9f0). -![](https://raw.githubusercontent.com/ethicalml/vulkan-kompute/master/docs/images/komputer-logos.gif) +![](https://raw.githubusercontent.com/KomputeFoundation/kompute/master/docs/images/komputer-logos.gif) ## Getting Started Below you can find a GPU multiplication example using the C++ and Python Kompute interfaces. -You can [join the Discord](https://discord.gg/ywjaBH6v24) for questions/discussion, open a [github issue](https://github.com/EthicalML/vulkan-kompute/issues/new), or read [the documentation](https://kompute.cc/). +You can [join the Discord](https://discord.gg/ywjaBH6v24) for questions/discussion, open a [github issue](https://github.com/KomputeFoundation/kompute/issues/new), or read [the documentation](https://kompute.cc/). ### Your First Kompute (C++) @@ -246,13 +246,13 @@ You are able to try out the interactive Colab Notebooks which allow you to use a - + - + @@ -280,13 +280,13 @@ Both videos have timestamps which will allow you to skip to the most relevant se - + - + @@ -316,7 +316,7 @@ Simplified Kompute Components - +

@@ -324,11 +324,11 @@ Simplified Kompute Components

- + - + @@ -340,11 +340,11 @@ Kompute provides flexibility to run operations in an asynrchonous way through vk The image below provides an intuition on how Kompute Sequences can be allocated to different queues to enable parallel execution based on hardware. You can see the [hands on example](https://kompute.cc/overview/advanced-examples.html#parallel-operations), as well as the [detailed documentation page](https://kompute.cc/overview/async-parallel.html) describing how it would work using an NVIDIA 1650 as an example. -![](https://raw.githubusercontent.com/ethicalml/vulkan-kompute/master/docs/images/queue-allocation.jpg) +![](https://raw.githubusercontent.com/KomputeFoundation/kompute/master/docs/images/queue-allocation.jpg) ## Mobile Enabled -Kompute has been optimized to work in mobile environments. The [build system](#build-overview) enables for dynamic loading of the Vulkan shared library for Android environments, together with a working [Android NDK wrapper](https://github.com/EthicalML/vulkan-kompute/tree/master/vk_ndk_wrapper_include) for the CPP headers. +Kompute has been optimized to work in mobile environments. The [build system](#build-overview) enables for dynamic loading of the Vulkan shared library for Android environments, together with a working [Android NDK wrapper](https://github.com/KomputeFoundation/kompute/tree/master/vk_ndk_wrapper_include) for the CPP headers. @@ -353,18 +353,18 @@ Kompute has been optimized to work in mobile environments. The [build system](#b

For a full deep dive you can read the blog post "Supercharging your Mobile Apps with On-Device GPU Accelerated Machine Learning". -You can also access the end-to-end example code in the repository, which can be run using android studio. +You can also access the end-to-end example code in the repository, which can be run using android studio.

- + @@ -401,7 +401,7 @@ pip install kp You can also install from master branch using: ``` -pip install git+git://github.com/EthicalML/vulkan-kompute.git@master +pip install git+git://github.com/KomputeFoundation/kompute.git@master ``` For further details you can read the [Python Package documentation](https://kompute.cc/overview/python-package.html) or the [Python Class Reference documentation](https://kompute.cc/overview/python-reference.html). @@ -416,7 +416,7 @@ The top level `Makefile` provides a set of optimized configurations for developm cmake -Bbuild ``` -You also are able to add Kompute in your repo with `add_subdirectory` - the [Android example CMakeLists.txt file](https://github.com/EthicalML/vulkan-kompute/blob/7c8c0eeba2cdc098349fcd999102bb2cca1bf711/examples/android/android-simple/app/src/main/cpp/CMakeLists.txt#L3) shows how this would be done. +You also are able to add Kompute in your repo with `add_subdirectory` - the [Android example CMakeLists.txt file](https://github.com/KomputeFoundation/kompute/blob/7c8c0eeba2cdc098349fcd999102bb2cca1bf711/examples/android/android-simple/app/src/main/cpp/CMakeLists.txt#L3) shows how this would be done. For a more advanced overview of the build configuration check out the [Build System Deep Dive](https://kompute.cc/overview/build-system.html) documentation. diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 000000000..27fcc784f --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,13 @@ +# Security Policy + +This document provides an overview of the security policy of Kompute. + +Kompute aims to follow the two following policies: + +* Keep dependencies up to date +* Identify and address common vulnerabilities and exposures + +## Reporting a Vulnerability + +If you identify a vulnerability the best way to report it is by sending an email to the team via a@ethical.institute. The discussion can then take place there on next steps (ie updating library, reaching out to 3rd party projects, etc). + diff --git a/docs/conf.py b/docs/conf.py index 8a7cdc43a..fe329d6a1 100755 --- a/docs/conf.py +++ b/docs/conf.py @@ -73,7 +73,7 @@ if html_theme == 'sphinx_material': 'base_url': 'https://kompute.cc', 'color_primary': 'red', 'color_accent': 'light-blue', - 'repo_url': 'https://github.com/EthicalML/vulkan-kompute/', + 'repo_url': 'https://github.com/KomputeFoundation/kompute/', 'repo_name': 'Kompute', 'globaltoc_depth': 2, 'globaltoc_collapse': False, @@ -81,7 +81,7 @@ if html_theme == 'sphinx_material': "repo_type": "github", "nav_links": [ { - "href": "https://github.com/EthicalML/vulkan-kompute/", + "href": "https://github.com/KomputeFoundation/kompute/", "internal": False, "title": "Kompute Repo", }, diff --git a/docs/overview/advanced-examples.rst b/docs/overview/advanced-examples.rst index 2af8eae61..644ebc87c 100644 --- a/docs/overview/advanced-examples.rst +++ b/docs/overview/advanced-examples.rst @@ -87,7 +87,7 @@ Your Custom Kompute Operation Build your own pre-compiled operations for domain specific workflows. Back to `examples list <#simple-examples>`_ -We also provide tools that allow you to `convert shaders into C++ headers `_. +We also provide tools that allow you to `convert shaders into C++ headers `_. .. code-block:: cpp :linenos: diff --git a/docs/overview/build-system.rst b/docs/overview/build-system.rst index bdc664693..61164d5f0 100644 --- a/docs/overview/build-system.rst +++ b/docs/overview/build-system.rst @@ -79,11 +79,11 @@ Other CMake Flags * - Flag - Description * - -DPYTHON_INCLUDE_DIR - - Path to where Python.h is found, used for specifying installation of Python (see `this PR `_) + - Path to where Python.h is found, used for specifying installation of Python (see `this PR `_) * - -DPYTHON_LIBRARY - - Path to the Python library, used for specifying installation of Python (see `this PR `_) + - Path to the Python library, used for specifying installation of Python (see `this PR `_) * - -DCMAKE_OSX_ARCHITECTURES - - Specifies the target architecture for Apple platforms (see `this issue `_) + - Specifies the target architecture for Apple platforms (see `this issue `_) Dependencies ^^^^^^^^^^^^ diff --git a/docs/overview/ci-tests.rst b/docs/overview/ci-tests.rst index 3dc0e15ec..4c0e78449 100644 --- a/docs/overview/ci-tests.rst +++ b/docs/overview/ci-tests.rst @@ -26,8 +26,8 @@ The simplest way to see how this works is by looking at the github actions comma These can be found through the following files: -* `CPP Tests `_ -* `Python Tests `_ +* `CPP Tests `_ +* `Python Tests `_ When submitting a PR or merging a PR into master, both of these will run - you can see the logs through the github interface. diff --git a/docs/overview/python-package.rst b/docs/overview/python-package.rst index ecd810825..998d5b62e 100644 --- a/docs/overview/python-package.rst +++ b/docs/overview/python-package.rst @@ -28,7 +28,7 @@ You can also install from master branch using: .. code-block:: python - pip install git+git://github.com/EthicalML/vulkan-kompute.git@master + pip install git+git://github.com/KomputeFoundation/kompute.git@master Core Python Components diff --git a/docs/overview/shaders-to-headers.rst b/docs/overview/shaders-to-headers.rst index 53817c85e..237a08215 100644 --- a/docs/overview/shaders-to-headers.rst +++ b/docs/overview/shaders-to-headers.rst @@ -6,7 +6,7 @@ Processing Shaders with Kompute Demo / testing function to compile shaders ---------------------------------- -GLSLANG was initially integrated as part of the framework but it now has been removed due to the license of the glslang pre-processor being under a custom NVIDIA license which explicitly excludes grant of any licenses to NVIDIA's patents in the preprocessor. This is covered in more detail here: https://github.com/EthicalML/vulkan-kompute/pull/235 +GLSLANG was initially integrated as part of the framework but it now has been removed due to the license of the glslang pre-processor being under a custom NVIDIA license which explicitly excludes grant of any licenses to NVIDIA's patents in the preprocessor. This is covered in more detail here: https://github.com/KomputeFoundation/kompute/pull/235 For users that are looking to quickly test the processors it is possible to use the function that is provided in the examples which provides a (non-thread-safe / non-robust) implementation that compiles a shader string into spirv bytes. It is not recommended to use in production but it does enable for faster iteration cycles during development. @@ -17,9 +17,7 @@ For users that are looking to quickly test the processors it is possible to use compileSource( const std::string& source) { - if (system(std::string("glslangValidator --stdin -S comp -V -o tmp_kp_shader.comp.spv << END - " + source + " - END").c_str())) + if (system(std::string("glslangValidator --stdin -S comp -V -o tmp_kp_shader.comp.spv << END\n" + source + "\nEND").c_str())) throw std::runtime_error("Error running glslangValidator command"); std::ifstream fileStream("tmp_kp_shader.comp.spv", std::ios::binary); std::vector buffer; @@ -34,7 +32,7 @@ Kompute allows for shaders to be loaded directly through the :class:`kp::OpAlgoB The Kompute codebase has a utility that allows you to convert shader files into C++ header files containing the SPIRV header data. This is useful as it enables developers to compile the SPIRV shaders into the final binary, which avoids the need for multiple files being required. -The utility can be found under `scripts/convert_shaders.py `_ and consists primarily of a Python CLI that can be called to pass arguments. +The utility can be found under `scripts/convert_shaders.py `_ and consists primarily of a Python CLI that can be called to pass arguments. In order to use this Python utility, you will have to first install the dependencies outlined by the `scripts/requirements.txt` file. You will need to have python 3 and pip3 installed. @@ -69,6 +67,6 @@ You can run `python3 scripts/convert_shaders.py --help` to see all the options a -v, --verbose Enable versbosity if flag is provided --help Show this message and exit. -You can see the command that converts the shaders `in the makefile `_ to get an idea of how you would be able to use this utility. +You can see the command that converts the shaders `in the makefile `_ to get an idea of how you would be able to use this utility. diff --git a/examples/android/android-simple/README.md b/examples/android/android-simple/README.md index 13a6ca251..335887287 100644 --- a/examples/android/android-simple/README.md +++ b/examples/android/android-simple/README.md @@ -19,13 +19,13 @@ The build structure provides a range of options to build in different Android ha
- +
diff --git a/examples/godot_examples/README.md b/examples/godot_examples/README.md index 0018574cf..711b72629 100644 --- a/examples/godot_examples/README.md +++ b/examples/godot_examples/README.md @@ -1,6 +1,6 @@ # Godot Summator GPU Kompute Example -![](https://github.com/EthicalML/vulkan-kompute/raw/master/docs/images/komputer-godot-4.gif) +![](https://github.com/KomputeFoundation/kompute/raw/master/docs/images/komputer-godot-4.gif) This repository contains the accompanying code for the Blog post ["Supercharging Game Development with GPU Accelerated Machine Learning"](https://medium.com/@AxSaucedo/supercharging-game-development-with-gpu-accelerated-ml-using-vulkan-kompute-the-godot-game-engine-4e75a84ea9f0). diff --git a/examples/godot_examples/custom_module/.gitignore b/examples/godot_examples/custom_module/.gitignore index 1e6a0400e..371dc7b6d 100644 --- a/examples/godot_examples/custom_module/.gitignore +++ b/examples/godot_examples/custom_module/.gitignore @@ -1,3 +1,3 @@ -vulkan-kompute +kompute lib godot diff --git a/examples/godot_examples/custom_module/README.md b/examples/godot_examples/custom_module/README.md index adf1267a0..1cd146d76 100644 --- a/examples/godot_examples/custom_module/README.md +++ b/examples/godot_examples/custom_module/README.md @@ -1,6 +1,6 @@ # Kompute Godot Example -![](https://github.com/EthicalML/vulkan-kompute/raw/master/docs/images/komputer-godot-4.gif) +![](https://github.com/KomputeFoundation/kompute/raw/master/docs/images/komputer-godot-4.gif) ## Set Up Dependencies @@ -19,13 +19,13 @@ We will be using v0.3.1 of Kompute, and similar to above we will need the built We can start by cloning the repository on the v0.3.1 branch: ``` -git clone --branch v0.3.1 https://github.com/EthicalML/vulkan-kompute/ +git clone --branch v0.3.1 https://github.com/KomputeFoundation/kompute/ ``` You will be able to use cmake to generate the build files for your platform. ``` -cmake vulkan-kompute/. -Bvulkan-kompute/build +cmake kompute/. -Bkompute/build ``` You need to make sure that the build is configured with the same flags required for godot, for example, in windows you will need: diff --git a/examples/godot_examples/gdnative_shared/.gitignore b/examples/godot_examples/gdnative_shared/.gitignore index 0cf5ce739..1fe38fec3 100644 --- a/examples/godot_examples/gdnative_shared/.gitignore +++ b/examples/godot_examples/gdnative_shared/.gitignore @@ -1,4 +1,4 @@ -vulkan-kompute +kompute lib godot-cpp .import diff --git a/examples/godot_examples/gdnative_shared/README.md b/examples/godot_examples/gdnative_shared/README.md index b9ee10d15..ec7ac522a 100644 --- a/examples/godot_examples/gdnative_shared/README.md +++ b/examples/godot_examples/gdnative_shared/README.md @@ -1,6 +1,6 @@ # Kompute Godot Example -![](https://github.com/EthicalML/vulkan-kompute/raw/master/docs/images/komputer-godot-4.gif) +![](https://github.com/KomputeFoundation/kompute/raw/master/docs/images/komputer-godot-4.gif) ## Set Up Dependencies diff --git a/examples/godot_logistic_regression/README.md b/examples/godot_logistic_regression/README.md index 2d96eacc8..91565bdc0 100644 --- a/examples/godot_logistic_regression/README.md +++ b/examples/godot_logistic_regression/README.md @@ -1,7 +1,7 @@ # Kompute Game Engine Integration (Godot) -![](https://github.com/EthicalML/vulkan-kompute/raw/master/docs/images/komputer-godot-4.gif) +![](https://github.com/KomputeFoundation/kompute/raw/master/docs/images/komputer-godot-4.gif) This repository contains the accompanying code for the Blog post ["Supercharging Game Development with GPU Accelerated Machine Learning"](https://medium.com/@AxSaucedo/supercharging-game-development-with-gpu-accelerated-ml-using-vulkan-kompute-the-godot-game-engine-4e75a84ea9f0). diff --git a/examples/godot_logistic_regression/custom_module/.gitignore b/examples/godot_logistic_regression/custom_module/.gitignore index 1e6a0400e..371dc7b6d 100644 --- a/examples/godot_logistic_regression/custom_module/.gitignore +++ b/examples/godot_logistic_regression/custom_module/.gitignore @@ -1,3 +1,3 @@ -vulkan-kompute +kompute lib godot diff --git a/examples/godot_logistic_regression/custom_module/README.md b/examples/godot_logistic_regression/custom_module/README.md index 97dda725c..ac4cc3923 100644 --- a/examples/godot_logistic_regression/custom_module/README.md +++ b/examples/godot_logistic_regression/custom_module/README.md @@ -5,7 +5,7 @@ This is the accompanying code for the Blog post ["Supercharging Game Development This section contains the implementation of the Kompute module as a statically compile module built with the Godot engine source code. This approach requires re-compiling the Godot engine source code. -![](https://github.com/EthicalML/vulkan-kompute/raw/master/docs/images/komputer-godot-4.gif) +![](https://github.com/KomputeFoundation/kompute/raw/master/docs/images/komputer-godot-4.gif) ## Set Up Dependencies @@ -25,13 +25,13 @@ We will be using v0.3.1 of Kompute, and similar to above we will need the built We can start by cloning the repository on the v0.3.1 branch: ``` -git clone --branch v0.3.1 https://github.com/EthicalML/vulkan-kompute/ +git clone --branch v0.3.1 https://github.com/KomputeFoundation/kompute/ ``` You will be able to use cmake to generate the build files for your platform. ``` -cmake vulkan-kompute/. -Bvulkan-kompute/build +cmake kompute/. -Bkompute/build ``` You need to make sure that the build is configured with the same flags required for godot, for example, in windows you will need: diff --git a/examples/godot_logistic_regression/gdnative_shared/.gitignore b/examples/godot_logistic_regression/gdnative_shared/.gitignore index 0cf5ce739..1fe38fec3 100644 --- a/examples/godot_logistic_regression/gdnative_shared/.gitignore +++ b/examples/godot_logistic_regression/gdnative_shared/.gitignore @@ -1,4 +1,4 @@ -vulkan-kompute +kompute lib godot-cpp .import diff --git a/examples/godot_logistic_regression/gdnative_shared/README.md b/examples/godot_logistic_regression/gdnative_shared/README.md index 433bf5b56..e1241d6bc 100644 --- a/examples/godot_logistic_regression/gdnative_shared/README.md +++ b/examples/godot_logistic_regression/gdnative_shared/README.md @@ -6,7 +6,7 @@ This is the accompanying code for the Blog post ["Supercharging Game Development This section contains the implementation of the Kompute module as a shared GdNative Library that can be loaded dynamically through the Godot engine. This approach does not require re-compiling the Godot engine source code. -![](https://github.com/EthicalML/vulkan-kompute/raw/master/docs/images/komputer-godot-4.gif) +![](https://github.com/KomputeFoundation/kompute/raw/master/docs/images/komputer-godot-4.gif) ### Set Up Dependencies diff --git a/examples/neural_network_vgg7/README.md b/examples/neural_network_vgg7/README.md index 2b65102ab..3e6b06df7 100644 --- a/examples/neural_network_vgg7/README.md +++ b/examples/neural_network_vgg7/README.md @@ -1,6 +1,6 @@ # Waifu2x VGG7 implementation -This demonstrates performing image upscaling using Python and vulkan-kompute. +This demonstrates performing image upscaling using Python and kompute. To import the no-noise-compensation VGG7 model (into `model-kipper`): diff --git a/examples/pi4_mesa_build/README.md b/examples/pi4_mesa_build/README.md index 23a839120..3eed3cf66 100644 --- a/examples/pi4_mesa_build/README.md +++ b/examples/pi4_mesa_build/README.md @@ -96,7 +96,7 @@ vulkaninfo Clone Kompute for access to the latest Python tests. ``` -git clone https://github.com/EthicalML/vulkan-kompute.git +git clone https://github.com/KomputeFoundation/kompute.git ``` ## Install dependencies to run the tests @@ -104,12 +104,12 @@ git clone https://github.com/EthicalML/vulkan-kompute.git Navigate to the available tests and install required dependencies. ``` -cd vulkan-kompute/python/test +cd kompute/python/test python3 -m venv .venv source .venv/bin/activate pip install --upgrade pip wheel pip install -r requirements-dev.txt -pip install git+git://github.com/EthicalML/vulkan-kompute.git +pip install git+git://github.com/KomputeFoundation/kompute.git ``` ## Run the available tests diff --git a/external/bin/xxd.c b/external/bin/xxd.c index a942dd0a6..4d16f77c4 100644 --- a/external/bin/xxd.c +++ b/external/bin/xxd.c @@ -1,4 +1,27 @@ -/* xxd: my hexdump facility. jw +/* +As indicated at https://lists.debian.org/debian-legal/2015/01/msg00037.html, +the author has permitted redistribution of xxd under the MIT license, as follows: + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * xxd: my hexdump facility. jw * * 2.10.90 changed to word output * 3.03.93 new indent style, dumb bug inserted and fixed. @@ -58,27 +81,6 @@ * make money and share with me, * lose money and don't ask me. * -As indicated at https://lists.debian.org/debian-legal/2015/01/msg00037.html, -the author has permitted redistribution of xxd under the MIT license, as follows: - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * */ diff --git a/single_include/kompute/Kompute.hpp b/single_include/kompute/Kompute.hpp index 4d252f519..12fe9cda9 100755 --- a/single_include/kompute/Kompute.hpp +++ b/single_include/kompute/Kompute.hpp @@ -587,6 +587,8 @@ static const unsigned int shaders_glsl_logisticregression_comp_spv_len = 4816; } #endif // define SHADEROP_SHADERLOGISTICREGRESSION_HPP +// SPDX-License-Identifier: Apache-2.0 + #if VK_USE_PLATFORM_ANDROID_KHR #include #include @@ -725,6 +727,8 @@ extern py::object kp_debug, kp_info, kp_warning, kp_error; #endif // KOMPUTE_SPDLOG_ENABLED #endif // KOMPUTE_LOG_OVERRIDE +// SPDX-License-Identifier: Apache-2.0 + namespace kp { /** @@ -1062,6 +1066,8 @@ class TensorT : public Tensor } // End namespace kp +// SPDX-License-Identifier: Apache-2.0 + namespace kp { /** @@ -1241,6 +1247,8 @@ class Algorithm } // End namespace kp +// SPDX-License-Identifier: Apache-2.0 + namespace kp { /** @@ -1301,6 +1309,8 @@ class OpBase } // End namespace kp +// SPDX-License-Identifier: Apache-2.0 + namespace kp { /** @@ -1372,6 +1382,8 @@ private: } // End namespace kp +// SPDX-License-Identifier: Apache-2.0 + namespace kp { /** @@ -1426,6 +1438,8 @@ class OpTensorCopy : public OpBase } // End namespace kp +// SPDX-License-Identifier: Apache-2.0 + namespace kp { /** @@ -1481,6 +1495,8 @@ class OpTensorSyncDevice : public OpBase } // End namespace kp +// SPDX-License-Identifier: Apache-2.0 + namespace kp { /** @@ -1538,6 +1554,8 @@ class OpTensorSyncLocal : public OpBase } // End namespace kp +// SPDX-License-Identifier: Apache-2.0 + namespace kp { /** @@ -1600,6 +1618,8 @@ private: } // End namespace kp +// SPDX-License-Identifier: Apache-2.0 + #include namespace kp { @@ -1649,6 +1669,8 @@ class OpMult : public OpAlgoDispatch } // End namespace kp +// SPDX-License-Identifier: Apache-2.0 + namespace kp { /** @@ -1939,6 +1961,8 @@ class Sequence : public std::enable_shared_from_this } // End namespace kp +// SPDX-License-Identifier: Apache-2.0 + #include #include diff --git a/src/Algorithm.cpp b/src/Algorithm.cpp index 1b34b35e6..8d510bb9c 100644 --- a/src/Algorithm.cpp +++ b/src/Algorithm.cpp @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: Apache-2.0 #include #include "kompute/Algorithm.hpp" diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 5adfddc2e..1d714110d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: Apache-2.0 if(KOMPUTE_OPT_ANDROID_BUILD) find_library(android android) diff --git a/src/Manager.cpp b/src/Manager.cpp index e017d2a5b..80f308983 100644 --- a/src/Manager.cpp +++ b/src/Manager.cpp @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: Apache-2.0 #include #include diff --git a/src/OpAlgoDispatch.cpp b/src/OpAlgoDispatch.cpp index 517a70d52..0fd323b7d 100644 --- a/src/OpAlgoDispatch.cpp +++ b/src/OpAlgoDispatch.cpp @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: Apache-2.0 #pragma once #include "kompute/operations/OpAlgoDispatch.hpp" diff --git a/src/OpMemoryBarrier.cpp b/src/OpMemoryBarrier.cpp index 09a91f065..8fa7b73d5 100644 --- a/src/OpMemoryBarrier.cpp +++ b/src/OpMemoryBarrier.cpp @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: Apache-2.0 #pragma once #include "kompute/operations/OpMemoryBarrier.hpp" diff --git a/src/OpTensorCopy.cpp b/src/OpTensorCopy.cpp index 4438f8d6a..390508c72 100644 --- a/src/OpTensorCopy.cpp +++ b/src/OpTensorCopy.cpp @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: Apache-2.0 #include "kompute/operations/OpTensorCopy.hpp" diff --git a/src/OpTensorSyncDevice.cpp b/src/OpTensorSyncDevice.cpp index ad071d8d3..f144191d1 100644 --- a/src/OpTensorSyncDevice.cpp +++ b/src/OpTensorSyncDevice.cpp @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: Apache-2.0 #include "kompute/operations/OpTensorSyncDevice.hpp" diff --git a/src/OpTensorSyncLocal.cpp b/src/OpTensorSyncLocal.cpp index fc3e0b93b..f1957eda7 100644 --- a/src/OpTensorSyncLocal.cpp +++ b/src/OpTensorSyncLocal.cpp @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: Apache-2.0 #include "kompute/Tensor.hpp" diff --git a/src/Sequence.cpp b/src/Sequence.cpp index 501e965d0..b805c7a66 100644 --- a/src/Sequence.cpp +++ b/src/Sequence.cpp @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: Apache-2.0 #include "kompute/Sequence.hpp" diff --git a/src/Tensor.cpp b/src/Tensor.cpp index 601d2f624..10690b585 100644 --- a/src/Tensor.cpp +++ b/src/Tensor.cpp @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: Apache-2.0 #include "kompute/Tensor.hpp" diff --git a/src/include/kompute/Algorithm.hpp b/src/include/kompute/Algorithm.hpp index ecbd36aa6..2ec2797a8 100644 --- a/src/include/kompute/Algorithm.hpp +++ b/src/include/kompute/Algorithm.hpp @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: Apache-2.0 #pragma once #include "kompute/Core.hpp" diff --git a/src/include/kompute/Core.hpp b/src/include/kompute/Core.hpp index 3510a2021..e26589ffb 100644 --- a/src/include/kompute/Core.hpp +++ b/src/include/kompute/Core.hpp @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: Apache-2.0 #pragma once #if VK_USE_PLATFORM_ANDROID_KHR diff --git a/src/include/kompute/Manager.hpp b/src/include/kompute/Manager.hpp index a2eff76a0..62f98d6d5 100644 --- a/src/include/kompute/Manager.hpp +++ b/src/include/kompute/Manager.hpp @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: Apache-2.0 #pragma once #include diff --git a/src/include/kompute/Sequence.hpp b/src/include/kompute/Sequence.hpp index 6eeb265c1..3b6a2683c 100644 --- a/src/include/kompute/Sequence.hpp +++ b/src/include/kompute/Sequence.hpp @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: Apache-2.0 #pragma once #include "kompute/Core.hpp" diff --git a/src/include/kompute/Tensor.hpp b/src/include/kompute/Tensor.hpp index db2745172..021ed2bd6 100644 --- a/src/include/kompute/Tensor.hpp +++ b/src/include/kompute/Tensor.hpp @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: Apache-2.0 #pragma once #include "kompute/Core.hpp" diff --git a/src/include/kompute/operations/OpAlgoDispatch.hpp b/src/include/kompute/operations/OpAlgoDispatch.hpp index 018fbced5..600b6116c 100644 --- a/src/include/kompute/operations/OpAlgoDispatch.hpp +++ b/src/include/kompute/operations/OpAlgoDispatch.hpp @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: Apache-2.0 #pragma once #include "kompute/Core.hpp" diff --git a/src/include/kompute/operations/OpBase.hpp b/src/include/kompute/operations/OpBase.hpp index f4efb2e9b..884e6e962 100644 --- a/src/include/kompute/operations/OpBase.hpp +++ b/src/include/kompute/operations/OpBase.hpp @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: Apache-2.0 #pragma once #include "kompute/Core.hpp" diff --git a/src/include/kompute/operations/OpMemoryBarrier.hpp b/src/include/kompute/operations/OpMemoryBarrier.hpp index 6ae7100db..d784f3bd7 100644 --- a/src/include/kompute/operations/OpMemoryBarrier.hpp +++ b/src/include/kompute/operations/OpMemoryBarrier.hpp @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: Apache-2.0 #pragma once #include "kompute/Core.hpp" diff --git a/src/include/kompute/operations/OpMult.hpp b/src/include/kompute/operations/OpMult.hpp index 5c6dec9f0..97b29cad9 100644 --- a/src/include/kompute/operations/OpMult.hpp +++ b/src/include/kompute/operations/OpMult.hpp @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: Apache-2.0 #pragma once #include diff --git a/src/include/kompute/operations/OpTensorCopy.hpp b/src/include/kompute/operations/OpTensorCopy.hpp index 892528996..a51021975 100644 --- a/src/include/kompute/operations/OpTensorCopy.hpp +++ b/src/include/kompute/operations/OpTensorCopy.hpp @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: Apache-2.0 #pragma once #include "kompute/Core.hpp" diff --git a/src/include/kompute/operations/OpTensorSyncDevice.hpp b/src/include/kompute/operations/OpTensorSyncDevice.hpp index 216ac74c9..09c755b01 100644 --- a/src/include/kompute/operations/OpTensorSyncDevice.hpp +++ b/src/include/kompute/operations/OpTensorSyncDevice.hpp @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: Apache-2.0 #pragma once #include "kompute/Core.hpp" diff --git a/src/include/kompute/operations/OpTensorSyncLocal.hpp b/src/include/kompute/operations/OpTensorSyncLocal.hpp index fc52acc35..365cabdf8 100644 --- a/src/include/kompute/operations/OpTensorSyncLocal.hpp +++ b/src/include/kompute/operations/OpTensorSyncLocal.hpp @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: Apache-2.0 #pragma once #include "kompute/Core.hpp" diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index b97e549b5..562f1890e 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: Apache-2.0 ##################################################### #################### GETEST ####################### diff --git a/test/TestAsyncOperations.cpp b/test/TestAsyncOperations.cpp index 7bda7a100..977b74e7b 100644 --- a/test/TestAsyncOperations.cpp +++ b/test/TestAsyncOperations.cpp @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: Apache-2.0 #include "gtest/gtest.h" @@ -168,7 +169,7 @@ TEST(TestAsyncOperations, TestManagerAsyncExecution) // AMD Drivers in Windows may see an error in this line due to timeout. // In order to fix this, it requires a change on Windows registries. // More details on this can be found here: https://docs.substance3d.com/spdoc/gpu-drivers-crash-with-long-computations-128745489.html - // Context on solution discussed in github: https://github.com/EthicalML/vulkan-kompute/issues/196#issuecomment-808866505 + // Context on solution discussed in github: https://github.com/KomputeFoundation/kompute/issues/196#issuecomment-808866505 sq1->evalAsync(algo1); sq2->evalAsync(algo2); diff --git a/test/TestDestroy.cpp b/test/TestDestroy.cpp index b415024e6..1e87f25b3 100644 --- a/test/TestDestroy.cpp +++ b/test/TestDestroy.cpp @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: Apache-2.0 #include "gtest/gtest.h" diff --git a/test/TestLogisticRegression.cpp b/test/TestLogisticRegression.cpp index 71eeaafde..c1818ec27 100644 --- a/test/TestLogisticRegression.cpp +++ b/test/TestLogisticRegression.cpp @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: Apache-2.0 #include "gtest/gtest.h" diff --git a/test/TestMain.cpp b/test/TestMain.cpp index 147a77f57..67faedd9b 100644 --- a/test/TestMain.cpp +++ b/test/TestMain.cpp @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: Apache-2.0 #include diff --git a/test/TestManager.cpp b/test/TestManager.cpp index c0e4e2942..d7791c3f2 100644 --- a/test/TestManager.cpp +++ b/test/TestManager.cpp @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: Apache-2.0 #include "gtest/gtest.h" diff --git a/test/TestMultipleAlgoExecutions.cpp b/test/TestMultipleAlgoExecutions.cpp index c364d0846..45466d4a1 100644 --- a/test/TestMultipleAlgoExecutions.cpp +++ b/test/TestMultipleAlgoExecutions.cpp @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: Apache-2.0 #include "gtest/gtest.h" diff --git a/test/TestOpShadersFromStringAndFile.cpp b/test/TestOpShadersFromStringAndFile.cpp index 09b354cc6..7033816e1 100644 --- a/test/TestOpShadersFromStringAndFile.cpp +++ b/test/TestOpShadersFromStringAndFile.cpp @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: Apache-2.0 #include "gtest/gtest.h" diff --git a/test/TestOpTensorCopy.cpp b/test/TestOpTensorCopy.cpp index 1cd87fc75..c76db8979 100644 --- a/test/TestOpTensorCopy.cpp +++ b/test/TestOpTensorCopy.cpp @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: Apache-2.0 #include "gtest/gtest.h" diff --git a/test/TestOpTensorCreate.cpp b/test/TestOpTensorCreate.cpp index 7ba1be615..8ad552e6c 100644 --- a/test/TestOpTensorCreate.cpp +++ b/test/TestOpTensorCreate.cpp @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: Apache-2.0 #include "gtest/gtest.h" diff --git a/test/TestOpTensorSync.cpp b/test/TestOpTensorSync.cpp index 02271c618..9fecb85f9 100644 --- a/test/TestOpTensorSync.cpp +++ b/test/TestOpTensorSync.cpp @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: Apache-2.0 #include "gtest/gtest.h" diff --git a/test/TestPushConstant.cpp b/test/TestPushConstant.cpp index df0980654..83b3d3d83 100644 --- a/test/TestPushConstant.cpp +++ b/test/TestPushConstant.cpp @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: Apache-2.0 + #include "gtest/gtest.h" #include "kompute/Kompute.hpp" diff --git a/test/TestSequence.cpp b/test/TestSequence.cpp index 3e8291591..7b432aebd 100644 --- a/test/TestSequence.cpp +++ b/test/TestSequence.cpp @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: Apache-2.0 #include "gtest/gtest.h" diff --git a/test/TestSpecializationConstant.cpp b/test/TestSpecializationConstant.cpp index 79e829f5b..15da143a0 100644 --- a/test/TestSpecializationConstant.cpp +++ b/test/TestSpecializationConstant.cpp @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: Apache-2.0 + #include "gtest/gtest.h" #include "kompute/Kompute.hpp" diff --git a/test/TestTensor.cpp b/test/TestTensor.cpp index c267024db..cba3cd961 100644 --- a/test/TestTensor.cpp +++ b/test/TestTensor.cpp @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: Apache-2.0 #include "gtest/gtest.h" diff --git a/test/TestWorkgroup.cpp b/test/TestWorkgroup.cpp index baa5e14da..164166ee3 100644 --- a/test/TestWorkgroup.cpp +++ b/test/TestWorkgroup.cpp @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: Apache-2.0 #include "gtest/gtest.h" diff --git a/test/utils/kompute_test/Shader.hpp b/test/utils/kompute_test/Shader.hpp index 884efe5f9..ccd3a94cf 100644 --- a/test/utils/kompute_test/Shader.hpp +++ b/test/utils/kompute_test/Shader.hpp @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: Apache-2.0 + #pragma once #include @@ -8,7 +10,7 @@ * Compile a single glslang source from string value. This is only meant * to be used for testing as it's non threadsafe, and it had to be removed * from the glslang dependency and now can only run the CLI directly due to - * license issues: see https://github.com/EthicalML/vulkan-kompute/pull/235 + * license issues: see https://github.com/KomputeFoundation/kompute/pull/235 * * @param source An individual raw glsl shader in string format * @return The compiled SPIR-V binary in unsigned int32 format diff --git a/vk_ndk_wrapper_include/kompute_vk_ndk_wrapper_patch.hpp b/vk_ndk_wrapper_include/kompute_vk_ndk_wrapper_patch.hpp index edf7b8736..f25f44c2b 100644 --- a/vk_ndk_wrapper_include/kompute_vk_ndk_wrapper_patch.hpp +++ b/vk_ndk_wrapper_include/kompute_vk_ndk_wrapper_patch.hpp @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: Apache-2.0 #pragma once /*
- +
- +