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

Add BLAS to SpMV operations for BsrMatrix #1297

Merged
merged 4 commits into from
Feb 7, 2022

Conversation

uhetmaniuk
Copy link
Contributor

Rebased version of PR #1296

  • Add calls to BLAS routines for SpMV of BsrMatrix (for all the operations on GPU)
  • Add 2 conjugate versions of BLAS routines GEMV and GEMM.

@uhetmaniuk
Copy link
Contributor Author

@lucbv

Here is the rebased version.

@kokkos-devops-admin
Copy link

Status Flag 'Pre-Test Inspection' - - This Pull Request Requires Inspection... The code must be inspected by a member of the Team before Testing/Merging
NO INSPECTION HAS BEEN PERFORMED ON THIS PULL REQUEST! - This PR must be inspected by setting label 'AT: PRE-TEST INSPECTED'.

@lucbv lucbv self-requested a review January 31, 2022 16:46
Copy link
Contributor

@lucbv lucbv left a comment

Choose a reason for hiding this comment

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

@uhetmaniuk this looks pretty good, I only have some minor comments.
Does the change to using more BLAS increase runtime or is it more or less neutral for performance? I know you mentioned the scaling operation might be more costly?

src/blas/impl/KokkosBlas2_team_gemv_spec.hpp Show resolved Hide resolved
src/blas/impl/KokkosBlas2_team_gemv_spec.hpp Show resolved Hide resolved
src/blas/impl/KokkosBlas2_team_gemv_spec.hpp Show resolved Hide resolved
src/sparse/impl/KokkosSparse_spmv_bsrmatrix_impl.hpp Outdated Show resolved Hide resolved
src/sparse/impl/KokkosSparse_spmv_bsrmatrix_impl.hpp Outdated Show resolved Hide resolved
src/sparse/impl/KokkosSparse_spmv_bsrmatrix_impl.hpp Outdated Show resolved Hide resolved
@uhetmaniuk
Copy link
Contributor Author

@lucbv
I think the changes are neutral (at least on the example I ran).
I kept KokkosBlas::Scal when it is outside of the kernel and KokkosBatched::TeamVectorScaleInternal inside a kernel.

Copy link
Contributor

@lucbv lucbv left a comment

Choose a reason for hiding this comment

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

Thanks for the changes, this looks fine.

@lucbv lucbv added the AT: PRE-TEST INSPECTED Mark this PR as approved for testing. label Jan 31, 2022
@kokkos-devops-admin kokkos-devops-admin removed the AT: PRE-TEST INSPECTED Mark this PR as approved for testing. label Feb 2, 2022
@kokkos-devops-admin
Copy link

Status Flag 'Pre-Test Inspection' - SUCCESS: The last commit to this Pull Request has been INSPECTED by label AT: PRE-TEST INSPECTED! Autotester is Removing Label; This inspection will remain valid until a new commit to source branch is performed.

@kokkos-devops-admin
Copy link

Status Flag 'Pull Request AutoTester' - Failure: Timed out waiting for job KokkosKernels_PullRequest_Tpls_CUDA9_Tpls_CUDA10_Tpls_CUDA10_LayoutRight_GCC720_Light_GCC720_GCC740 to start: Total Wait = 3603

  • Other jobs have been previously started - We must stop them...

@lucbv lucbv added the AT: RETEST Have this PR retested. label Feb 3, 2022
@lucbv lucbv added the AT: PRE-TEST INSPECTED Mark this PR as approved for testing. label Feb 3, 2022
@kokkos-devops-admin
Copy link

Status Flag 'Pull Request AutoTester' - User Requested Retest - Label AT: RETEST will be reset after testing.

@kokkos-devops-admin kokkos-devops-admin removed the AT: PRE-TEST INSPECTED Mark this PR as approved for testing. label Feb 5, 2022
@kokkos-devops-admin
Copy link

Status Flag 'Pre-Test Inspection' - SUCCESS: The last commit to this Pull Request has been INSPECTED by label AT: PRE-TEST INSPECTED! Autotester is Removing Label; This inspection will remain valid until a new commit to source branch is performed.

@kokkos-devops-admin
Copy link

Status Flag 'Pull Request AutoTester' - Testing Jenkins Projects:

Pull Request Auto Testing STARTING (click to expand)

Build Information

Test Name: KokkosKernels_PullRequest_Tpls_CUDA9_Tpls_CUDA10_Tpls_CUDA10_LayoutRight_GCC720_Light_GCC720_GCC740

  • Build Num: 45
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_BRANCH bsr-cuda-blas-spmv
KOKKOSKERNELS_SOURCE_REPO https://github.com/NexGenAnalytics/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 14e56f8
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA 4b9e29b
PR_LABELS AT: RETEST
PULLREQUESTNUM 1297
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_GCC720

  • Build Num: 816
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_BRANCH bsr-cuda-blas-spmv
KOKKOSKERNELS_SOURCE_REPO https://github.com/NexGenAnalytics/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 14e56f8
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA 4b9e29b
PR_LABELS AT: RETEST
PULLREQUESTNUM 1297
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_GCC720_Light_LayoutRight

  • Build Num: 463
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_BRANCH bsr-cuda-blas-spmv
KOKKOSKERNELS_SOURCE_REPO https://github.com/NexGenAnalytics/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 14e56f8
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA 4b9e29b
PR_LABELS AT: RETEST
PULLREQUESTNUM 1297
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_Tpls_GCC720

  • Build Num: 807
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_BRANCH bsr-cuda-blas-spmv
KOKKOSKERNELS_SOURCE_REPO https://github.com/NexGenAnalytics/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 14e56f8
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA 4b9e29b
PR_LABELS AT: RETEST
PULLREQUESTNUM 1297
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_Tpls_INTEL18

  • Build Num: 795
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_BRANCH bsr-cuda-blas-spmv
KOKKOSKERNELS_SOURCE_REPO https://github.com/NexGenAnalytics/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 14e56f8
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA 4b9e29b
PR_LABELS AT: RETEST
PULLREQUESTNUM 1297
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_CLANG1001

  • Build Num: 200
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_BRANCH bsr-cuda-blas-spmv
KOKKOSKERNELS_SOURCE_REPO https://github.com/NexGenAnalytics/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 14e56f8
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA 4b9e29b
PR_LABELS AT: RETEST
PULLREQUESTNUM 1297
TEST_REPO_ALIAS KOKKOSKERNELS

Using Repos:

Repo: KOKKOSKERNELS (NexGenAnalytics/kokkos-kernels)
  • Branch: bsr-cuda-blas-spmv
  • SHA: 14e56f8
  • Mode: TEST_REPO

Pull Request Author: uhetmaniuk

@kokkos-devops-admin
Copy link

Status Flag 'Pull Request AutoTester' - Jenkins Testing: all Jobs PASSED

Pull Request Auto Testing has PASSED (click to expand)

Build Information

Test Name: KokkosKernels_PullRequest_Tpls_CUDA9_Tpls_CUDA10_Tpls_CUDA10_LayoutRight_GCC720_Light_GCC720_GCC740

  • Build Num: 45
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_BRANCH bsr-cuda-blas-spmv
KOKKOSKERNELS_SOURCE_REPO https://github.com/NexGenAnalytics/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 14e56f8
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA 4b9e29b
PR_LABELS AT: RETEST
PULLREQUESTNUM 1297
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_GCC720

  • Build Num: 816
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_BRANCH bsr-cuda-blas-spmv
KOKKOSKERNELS_SOURCE_REPO https://github.com/NexGenAnalytics/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 14e56f8
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA 4b9e29b
PR_LABELS AT: RETEST
PULLREQUESTNUM 1297
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_GCC720_Light_LayoutRight

  • Build Num: 463
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_BRANCH bsr-cuda-blas-spmv
KOKKOSKERNELS_SOURCE_REPO https://github.com/NexGenAnalytics/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 14e56f8
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA 4b9e29b
PR_LABELS AT: RETEST
PULLREQUESTNUM 1297
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_Tpls_GCC720

  • Build Num: 807
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_BRANCH bsr-cuda-blas-spmv
KOKKOSKERNELS_SOURCE_REPO https://github.com/NexGenAnalytics/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 14e56f8
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA 4b9e29b
PR_LABELS AT: RETEST
PULLREQUESTNUM 1297
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_Tpls_INTEL18

  • Build Num: 795
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_BRANCH bsr-cuda-blas-spmv
KOKKOSKERNELS_SOURCE_REPO https://github.com/NexGenAnalytics/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 14e56f8
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA 4b9e29b
PR_LABELS AT: RETEST
PULLREQUESTNUM 1297
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_CLANG1001

  • Build Num: 200
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_BRANCH bsr-cuda-blas-spmv
KOKKOSKERNELS_SOURCE_REPO https://github.com/NexGenAnalytics/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 14e56f8
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA 4b9e29b
PR_LABELS AT: RETEST
PULLREQUESTNUM 1297
TEST_REPO_ALIAS KOKKOSKERNELS

@kokkos-devops-admin kokkos-devops-admin removed the AT: RETEST Have this PR retested. label Feb 5, 2022
@kokkos-devops-admin
Copy link

Status Flag 'Pre-Merge Inspection' - - This Pull Request Requires Inspection... The code must be inspected by a member of the Team before Testing/Merging
THE LAST COMMIT TO THIS PULL REQUEST HAS NOT BEEN REVIEWED YET!

@kokkos-devops-admin
Copy link

All Jobs Finished; status = PASSED, However Inspection must be performed before merge can occur...

2 similar comments
@kokkos-devops-admin
Copy link

All Jobs Finished; status = PASSED, However Inspection must be performed before merge can occur...

@kokkos-devops-admin
Copy link

All Jobs Finished; status = PASSED, However Inspection must be performed before merge can occur...

@lucbv lucbv self-requested a review February 7, 2022 17:02
Copy link
Contributor

@lucbv lucbv left a comment

Choose a reason for hiding this comment

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

Let us see if it will start testing now...

@kokkos-devops-admin
Copy link

Status Flag 'Pre-Merge Inspection' - SUCCESS: The last commit to this Pull Request has been INSPECTED AND APPROVED by [ lucbv ]!

@kokkos-devops-admin
Copy link

Status Flag 'Pull Request AutoTester' - Pull Request MUST BE MERGED MANUALLY BY Project Team - This Repo does not support Automerge

@lucbv lucbv merged commit ef10639 into kokkos:develop Feb 7, 2022
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.

3 participants