Skip to content

Conversation

@Guobing-Chen
Copy link

Reference Issues/PRs

What does this implement/fix? Explain your changes.

Re-implement SVC rbf train/predict kernel with GEMV BLAS API instead of currently used DOT.

This new implementation can greatly improve performance for both training and predicting. We picked 120+ datasets from https://archive.ics.uci.edu/ml/datasets and kaggle.com, part of the datasets are: abalone, statlog serials, musk serials, breast-cancer serials, etc. As an overall, this new implementation provides ~1.7x (training)/~2.5x (predict) performance than the master code on a AVX512 supported server. Generally, the bigger the dataset (more samples) the bigger benefit will be. The benefit mainly comes from GEMV vs. DOT ---- GEMV as level 2 BLAS API is much more efficient than DOT which is level 1 BLAS API when the input data is not too small.

Any other comments?

Shrinking needs be disabled during runtime to make this new kernel workable, or it will fall back to current dot based kernels. User can specify shrinking to be 0 when new a SVC instance.

Re-implement SVC rbf train/predict kernel with gemv blas operator
instead of currently used dot. Shrinking needs be disabled during
runtime to make this new kernel workable, or it will fall back to
current dot based kernels. This new implementation can greatly
improve performance for both training and predicting.
Copy link
Member

@thomasjpfan thomasjpfan 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 the PR @Guobing-Chen !

Can you provide a link to the code you used for benchmarking?


start = cache->get_data(i, &data, len);
#ifdef _DENSE_REP
if (shrinking==0 && kernel_type==RBF) {
Copy link
Member

Choose a reason for hiding this comment

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

My concern with this PR is that it adds a fair bit of complexity to speeding up RBF + no shrinking.

Base automatically changed from master to main January 22, 2021 10:53
@jjerphan
Copy link
Member

Hello @Guobing-Chen, are you still interested to work on this PR?

@ogrisel
Copy link
Member

ogrisel commented Nov 2, 2021

Related to #21410 and #21312.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants