Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEAT] Implement benchmark for cpu and gpu for initializer methods Cl… #68

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

henrique-borba
Copy link
Member

…oses #57 (#65)

  • CPU Benchmark files for initializers

Added benchmark files for CPU initializers using phpBench

  • New methods and features for 0.6.0 (New methods and features for 0.6.0 #64)

  • feat: squeeze manipulation routine with axis support

  • feat: NDArray::full implementation

  • feat: NDArray::fill release

  • feat: argmin and argmax with axis support

  • feat: NDArray::positive implementation

  • feat: NDArray::reciprocal implementation

  • feat: NDArray::reciprocal stubs

  • feat: NDArray::reciprocal stubs

  • feat: NDArray::swapaxes implementation
    feat: NDArray::transpose permutation

  • feat: NDArray::swapaxes and new transpose stubs

  • feat: NDArray::argmin and argmax keepdims option

  • feat: NDArray::rollaxis implementation

  • feat: NDArray::moveaxis implementation

  • fix: improvements to the slicing mechanism

  • feat: ndarray slicing stubs

  • fix: fixed slicing shape when arrays contain values

  • feat: hstack, vstack and dstack implementation

  • feat: column_stack implementation

  • feat: column_stack PHP stubs

  • feat: NDArray::concatenate implementation

  • feat: NDArray::append implementation

  • feat: NDArray::append stubs

  • docs: update README.md

  • fix: NDArray::append memory leak when using PHP arrays as arguments.

  • fix: new routines GPU implementation

  • Added Param Providers

  • Added parameter providers for readability and coding best practices
  • removed repetitive code
  • Added default phpbench file
  • Added default PHPBench configuration file
  • Update composer.json

  • Update initializers.c

Fixed comment for NDArray ones

  • Fixed setUp for benchmarking

Refactored function names for clarity, and fixed phpBench setup method

  • Added benchmarks for the linear algebra methods

Added benchmarks for Linear Algebra methods with the exception of functions Cond, Inv, and Qr

  • Added benchmarks for sum and products methods

Added benchmarks for sum and products methods

  • Added benchmarks for the arithmetic methods

Added benchmarks for the arithmetic methods

  • removed initial testArray values
  • Added default values for aggregate benchmarking

Added default Revs and iteration values for more accurate runtime time estimates.

  • Added Benchmarks for QR decomp, Condi, and Inverse
  • remove extra comments on Cholesky benchmark file
  • removed extra param comment in linalg file
  • Benchmark for QR decomposition function
  • Benchmark for Inverse function
  • Benchmark for Cond function
  • Added annotations and ignore configure~ file
  • Updated .gitignore to ignore generated configure file
  • Added MIT license under composer file
  • Added Group annotations

Added Group annotations to all benchmarks.

  • Update readability of ArrayInitializerBench

Updated Array Initializer Benchmark to utilize zeros Initializer for setup instead of hard coded arrays

  • Temp files in .gitignore

Removed temp files from .gitignore


Submission Checklist:

Due to the inherent complexity of this library, we created this checklist to remind everyone of the essential steps to have an MR approved depending on the type of change that is made. You can delete this.

  • Have you followed the guidelines in our Contributing document?
  • Have you checked to ensure there aren't other open Pull Requests for the same update/change?
  • Does your submission pass tests with ZEND_ALLOC enabled? export USE_ZEND_ALLOC=1 && make test
  • Does your submission pass tests with ZEND_ALLOC disabled? export USE_ZEND_ALLOC=0 && make test

Change to methods and operations

  • Have you verified that your change does not break backwards compatibility?
  • Have you updated the operation(s) tests for your changes, as applicable?
  • Optional: Have your changes also been tested on the GPU? If you don't have a GPU available, you'll need to wait for a community member to perform the approval with a GPU. This only applies to changes that can affect GPU functionality.
  • Optional: Have your changes also been tested on the GPU with the NDARRAY_VCHECK option enabled and no VRAM memory leaks were displayed? export NDARRAY_VCHECK=1 && make test

Changes to Core Components:

This include changes to: buffer.c, gpu_alloc.c, ndarray.c, iterators.c and their associated header files.

  • Have you added an explanation of what your changes do and why you'd like us to include them?
  • Have you written new tests for your core changes, as applicable?
  • Your change does not affect the GPU, or if it does, it was tested with the GPU and the NDARRAY_VCHECK environment variable set and with no VRAM memory leaks warnings?

…oses #57 (#65)

* CPU Benchmark files for initializers

Added benchmark files for CPU initializers using phpBench

* New methods and features for 0.6.0 (#64)

* feat: squeeze manipulation routine with axis support

* feat: NDArray::full implementation

* feat: NDArray::fill release

* feat: argmin and argmax with axis support

* feat: NDArray::positive implementation

* feat: NDArray::reciprocal implementation

* feat: NDArray::reciprocal stubs

* feat: NDArray::reciprocal stubs

* feat: NDArray::swapaxes implementation
feat: NDArray::transpose permutation

* feat: NDArray::swapaxes and new transpose stubs

* feat: NDArray::argmin and argmax keepdims option

* feat: NDArray::rollaxis implementation

* feat: NDArray::moveaxis implementation

* fix: improvements to the slicing mechanism

* feat: ndarray slicing stubs

* fix: fixed slicing shape when arrays contain values

* feat: hstack, vstack and dstack implementation

* feat: column_stack implementation

* feat: column_stack PHP stubs

* feat: NDArray::concatenate implementation

* feat: NDArray::append implementation

* feat: NDArray::append stubs

* docs: update README.md

* fix: NDArray::append memory leak when using PHP arrays as arguments.

* fix: new routines GPU implementation

* Added Param Providers

+ Added parameter providers for readability and coding best practices

- removed repetitive code

* Added default phpbench file

+ Added default PHPBench configuration file

* Update composer.json

* Update initializers.c

Fixed comment for NDArray ones

* Fixed setUp for benchmarking

Refactored function names for clarity, and fixed phpBench setup method

* Added benchmarks for the linear algebra methods

Added benchmarks for Linear Algebra methods with the exception of functions Cond, Inv, and Qr

* Added benchmarks for sum and products methods

Added benchmarks for sum and products methods

* Added benchmarks for the arithmetic methods

Added benchmarks for the arithmetic methods
- removed initial testArray values

* Added default values for aggregate benchmarking

Added default Revs and iteration values for more accurate runtime time estimates.

* Added Benchmarks for QR decomp, Condi, and Inverse

- remove extra comments on Cholesky benchmark file
- removed extra param comment in linalg file
+ Benchmark for QR decomposition function
+ Benchmark for Inverse function
+ Benchmark for Cond function

* Added annotations and ignore configure~ file

+ Updated .gitignore to ignore generated configure file
+ Added MIT license under composer file

* Added Group annotations

Added Group annotations to all benchmarks.

* Update readability of ArrayInitializerBench

Updated Array Initializer Benchmark to utilize zeros Initializer for setup instead of hard coded arrays

* Temp files in .gitignore

Removed temp files from .gitignore

---------

Co-authored-by: Henrique Borba <henrique.borba.dev@gmail.com>
Copy link
Contributor

@jiyo4476 jiyo4476 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for cleaning up the code and adding the updates to the branch!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants