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

MiniTensor: fix or at least work around some __host__ __device__ marking problems for CUDA build #9806

Merged

Conversation

japlews
Copy link
Contributor

@japlews japlews commented Oct 12, 2021

Fix a bunch of KOKKOS_INLINE_FUNCTION markings on functions. std::pair, boost::tuple, and associated helper functions were the primary problem.

The MiniTensor class Storage still needs some work with the DYNAMIC option, as memory will need to be allocated using some flavor of cudaMalloc in these cases. I left markings in place for now to avoid so many warnings.

@trilinos/MiniTensor @lxmota

Motivation

Fix CUDA build warnings; hundreds or thousands were showing up in application builds.

Related Issues

Stakeholder Feedback

Testing

Could use more tests with a variety of instantiations to expose problems with other potential use cases.

problems on CUDA build.

  Use std:: instead of boost:: in some places?
@jhux2 jhux2 requested a review from lxmota October 12, 2021 21:54
@trilinos-autotester
Copy link
Contributor

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 REVIEWS HAVE BEEN PERFORMED ON THIS PULL REQUEST!

Copy link
Member

@jhux2 jhux2 left a comment

Choose a reason for hiding this comment

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

Reviewing to allow PR tester to run.
DO NOT MERGE until @lxmota has approved.

@trilinos-autotester
Copy link
Contributor

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

@trilinos-autotester
Copy link
Contributor

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

Pull Request Auto Testing STARTING (click to expand)

Build Information

Test Name: Trilinos_pullrequest_gcc_8.3.0

  • Build Num: 5770
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
PR_LABELS pkg: minitensor
PULLREQUESTNUM 9806
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH japlews/minitensor-host-device-fixes
TRILINOS_SOURCE_REPO https://github.com/japlews/Trilinos
TRILINOS_SOURCE_SHA 54a5a70
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA eebd63c

Build Information

Test Name: Trilinos_pullrequest_gcc_7.2.0_serial

  • Build Num: 3315
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
PR_LABELS pkg: minitensor
PULLREQUESTNUM 9806
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH japlews/minitensor-host-device-fixes
TRILINOS_SOURCE_REPO https://github.com/japlews/Trilinos
TRILINOS_SOURCE_SHA 54a5a70
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA eebd63c

Build Information

Test Name: Trilinos_pullrequest_gcc_7.2.0_debug

  • Build Num: 3833
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
PR_LABELS pkg: minitensor
PULLREQUESTNUM 9806
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH japlews/minitensor-host-device-fixes
TRILINOS_SOURCE_REPO https://github.com/japlews/Trilinos
TRILINOS_SOURCE_SHA 54a5a70
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA eebd63c

Build Information

Test Name: Trilinos_pullrequest_intel_17.0.1

  • Build Num: 11018
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
PR_LABELS pkg: minitensor
PULLREQUESTNUM 9806
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH japlews/minitensor-host-device-fixes
TRILINOS_SOURCE_REPO https://github.com/japlews/Trilinos
TRILINOS_SOURCE_SHA 54a5a70
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA eebd63c

Build Information

Test Name: Trilinos_pullrequest_cuda_10.1.105

  • Build Num: 2460
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
PR_LABELS pkg: minitensor
PULLREQUESTNUM 9806
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH japlews/minitensor-host-device-fixes
TRILINOS_SOURCE_REPO https://github.com/japlews/Trilinos
TRILINOS_SOURCE_SHA 54a5a70
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA eebd63c

Build Information

Test Name: Trilinos_pullrequest_cuda_10.1.105_uvm_off

  • Build Num: 1455
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
PR_LABELS pkg: minitensor
PULLREQUESTNUM 9806
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH japlews/minitensor-host-device-fixes
TRILINOS_SOURCE_REPO https://github.com/japlews/Trilinos
TRILINOS_SOURCE_SHA 54a5a70
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA eebd63c

Build Information

Test Name: Trilinos_pullrequest_clang_10.0.0

  • Build Num: 3818
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
PR_LABELS pkg: minitensor
PULLREQUESTNUM 9806
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH japlews/minitensor-host-device-fixes
TRILINOS_SOURCE_REPO https://github.com/japlews/Trilinos
TRILINOS_SOURCE_SHA 54a5a70
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA eebd63c

Build Information

Test Name: python-3

  • Build Num: 454
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
PR_LABELS pkg: minitensor
PULLREQUESTNUM 9806
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH japlews/minitensor-host-device-fixes
TRILINOS_SOURCE_REPO https://github.com/japlews/Trilinos
TRILINOS_SOURCE_SHA 54a5a70
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA eebd63c

Using Repos:

Repo: TRILINOS (japlews/Trilinos)
  • Branch: japlews/minitensor-host-device-fixes
  • SHA: 54a5a70
  • Mode: TEST_REPO

Pull Request Author: japlews

Copy link
Contributor

@lxmota lxmota left a comment

Choose a reason for hiding this comment

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

Looks good to me. Thanks for doing this!

@trilinos-autotester
Copy link
Contributor

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

Pull Request Auto Testing has PASSED (click to expand)

Build Information

Test Name: Trilinos_pullrequest_gcc_8.3.0

  • Build Num: 5770
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
PR_LABELS pkg: minitensor
PULLREQUESTNUM 9806
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH japlews/minitensor-host-device-fixes
TRILINOS_SOURCE_REPO https://github.com/japlews/Trilinos
TRILINOS_SOURCE_SHA 54a5a70
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA eebd63c

Build Information

Test Name: Trilinos_pullrequest_gcc_7.2.0_serial

  • Build Num: 3315
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
PR_LABELS pkg: minitensor
PULLREQUESTNUM 9806
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH japlews/minitensor-host-device-fixes
TRILINOS_SOURCE_REPO https://github.com/japlews/Trilinos
TRILINOS_SOURCE_SHA 54a5a70
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA eebd63c

Build Information

Test Name: Trilinos_pullrequest_gcc_7.2.0_debug

  • Build Num: 3833
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
PR_LABELS pkg: minitensor
PULLREQUESTNUM 9806
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH japlews/minitensor-host-device-fixes
TRILINOS_SOURCE_REPO https://github.com/japlews/Trilinos
TRILINOS_SOURCE_SHA 54a5a70
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA eebd63c

Build Information

Test Name: Trilinos_pullrequest_intel_17.0.1

  • Build Num: 11018
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
PR_LABELS pkg: minitensor
PULLREQUESTNUM 9806
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH japlews/minitensor-host-device-fixes
TRILINOS_SOURCE_REPO https://github.com/japlews/Trilinos
TRILINOS_SOURCE_SHA 54a5a70
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA eebd63c

Build Information

Test Name: Trilinos_pullrequest_cuda_10.1.105

  • Build Num: 2460
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
PR_LABELS pkg: minitensor
PULLREQUESTNUM 9806
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH japlews/minitensor-host-device-fixes
TRILINOS_SOURCE_REPO https://github.com/japlews/Trilinos
TRILINOS_SOURCE_SHA 54a5a70
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA eebd63c

Build Information

Test Name: Trilinos_pullrequest_cuda_10.1.105_uvm_off

  • Build Num: 1455
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
PR_LABELS pkg: minitensor
PULLREQUESTNUM 9806
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH japlews/minitensor-host-device-fixes
TRILINOS_SOURCE_REPO https://github.com/japlews/Trilinos
TRILINOS_SOURCE_SHA 54a5a70
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA eebd63c

Build Information

Test Name: Trilinos_pullrequest_clang_10.0.0

  • Build Num: 3818
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
PR_LABELS pkg: minitensor
PULLREQUESTNUM 9806
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH japlews/minitensor-host-device-fixes
TRILINOS_SOURCE_REPO https://github.com/japlews/Trilinos
TRILINOS_SOURCE_SHA 54a5a70
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA eebd63c

Build Information

Test Name: python-3

  • Build Num: 454
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
PR_LABELS pkg: minitensor
PULLREQUESTNUM 9806
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH japlews/minitensor-host-device-fixes
TRILINOS_SOURCE_REPO https://github.com/japlews/Trilinos
TRILINOS_SOURCE_SHA 54a5a70
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA eebd63c


CDash Test Results for PR# 9806.

@trilinos-autotester
Copy link
Contributor

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

@trilinos-autotester
Copy link
Contributor

Status Flag 'Pull Request AutoTester' - AutoMerge IS ENABLED, but the Label AT: AUTOMERGE is not set. Either set Label AT: AUTOMERGE or manually merge the PR...

@jhux2 jhux2 merged commit 0c76505 into trilinos:develop Oct 13, 2021
@japlews japlews deleted the japlews/minitensor-host-device-fixes branch December 8, 2021 17:31
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