TDAmeritrade / stumpy

STUMPY is a powerful and scalable Python library for modern time series analysis
https://stumpy.readthedocs.io/en/latest/
Other
3.58k stars 315 forks source link

Change `gpu_stump` to Pearson Correlation #256

Open seanlaw opened 3 years ago

seanlaw commented 3 years ago

Currently, gpu_stump uses the sliding dot product approach to computing matrix profiles rather than Pearson Correlation. In theory, we should be process each row at a time (rather than traversing diagonals) and instead of storing QT from the last row, we store the covariance from the previous row.

Doing this should result in a nice speed improvement and makes the codebase more consistent with the stump functions since they also use Pearson Correlation

wiredinhp commented 3 months ago

@seanlaw Hi there ! I am a new contributor to this repository and would love to contribute by solving this issue. Could you please assign this issue to me ?

seanlaw commented 3 months ago

@wiredinhp Thank you for your interest. Please take a look at feel free to ask any clarifying questions.

seanlaw commented 3 months ago

@wiredinhp Note that you will need an NVIDIA GPU to test on. Please see this stump file as a cross-reference for Pearson Correlation but note that GPU code uses a different paradigm than CPU code.

wiredinhp commented 3 months ago

@seanlaw Actually I am currently using a mac and I do not have NVIDIA GPU to test on but can I send a draft PR or specific commits in my forked repo to you so that you can verify and test on ?

seanlaw commented 3 months ago

@seanlaw Actually I am currently using a mac and I do not have NVIDIA GPU to test on but can I send a draft PR or specific commits in my forked repo to you so that you can verify and test on ?

In that case, you can try creating your PR and then using Google Colab, which has NVIDIA GPUs, to run our unit test suite on. Please see/copy this example notebook and ask follow up questions. We are here to help!

wiredinhp commented 3 months ago

@seanlaw Sure !! I am aware of Google Colab though I was not sure whether it can handle the unit test suite but I will try and get back to you 👍