-
Notifications
You must be signed in to change notification settings - Fork 578
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
Implement getHostBasis() in newer Basis subclasses #8811
Implement getHostBasis() in newer Basis subclasses #8811
Conversation
… support DeviceType template arguments, plus implement getHostBasis().
…plate arguments, plus implement getHostBasis().
… of this in the definition of the DerivedBasisFamily's Basis typedef.
- reverted defaults for DeviceType to be the Kokkos::DefaultExecutionSpace (in interest of changing as little behavior as possible) - made TensorBasis templated on the Base basis class rather than <ExecutionSpace,OutputType,PointType>
…er than <ExecutionSpace,OutputType,PointType>.
- revised template arguments of Basis_TensorBasis3; now depends only on the base Basis class - added a typedef for HostBasisPtr to Intrepid2_Basis.hpp - made the return type for Basis::getHostBasis() use HostBasisPtr Also, added getHostBasis() implementations to the following: - Intrepid2_DerivedBasis_HCURL_HEX.hpp - Intrepid2_DerivedBasis_HCURL_QUAD.hpp - Intrepid2_DerivedBasis_HDIV_HEX.hpp - Intrepid2_DerivedBasis_HDIV_QUAD.hpp - Intrepid2_DerivedBasis_HGRAD_HEX.hpp - Intrepid2_DerivedBasis_HGRAD_QUAD.hpp - Intrepid2_HGRAD_LINE_Cn_FEM.hpp - Intrepid2_HVOL_LINE_Cn_FEM.hpp - Intrepid2_IntegratedLegendreBasis_HGRAD_LINE.hpp - Intrepid2_LegendreBasis_HVOL_LINE.hpp Included some testing of getHostBasis() in BasisValuesTests.cpp; tests confirm that host basis and regular basis agree on basis values.
…n one test: group BasisValues, test HierarchicalHGRAD_LINE_DeviceType.
…xecutionSpace::device_type, instead of forcing to Serial/HostSpace.
…AD. Added tests against these in BasisValuesTests. (Removed separately-defined DeviceType tests; instead, replaced existing tests with the new DeviceType tests.)
Status Flag 'Pre-Test Inspection' - Auto Inspected - Inspection Is Not Necessary for this Pull Request. |
Status Flag 'Pull Request AutoTester' - Testing Jenkins Projects: Pull Request Auto Testing STARTING (click to expand)Build InformationTest Name: Trilinos_pullrequest_gcc_8.3.0
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_gcc_7.2.0_serial
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_gcc_7.2.0_debug
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_intel_17.0.1
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_cuda_10.1.105
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_clang_10.0.0
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_python_3
Jenkins Parameters
Using Repos:
Pull Request Author: CamelliaDPG |
Status Flag 'Pull Request AutoTester' - Error: Jenkins Jobs - Error: [Jenkins] Cannot retrieve build running status on build (FATAL: ERROR : [jwrap: self.jserverinst.get_job(self.jobname):106:./support/jenkins_support.py] - General Exception: (502 Server Error: Proxy Error for url: https://ascic-jenkins.sandia.gov/job/trilinos-folder/job/Trilinos_pullrequest_gcc_7.2.0_serial/api/python)) |
Status Flag 'Pull Request AutoTester' - Jenkins Testing: 1 or more Jobs FAILED Note: Testing will normally be attempted again in approx. 2 Hrs 30 Mins. If a change to the PR source branch occurs, the testing will be attempted again on next available autotester run. Pull Request Auto Testing has FAILED (click to expand)Build InformationTest Name: Trilinos_pullrequest_gcc_8.3.0
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_gcc_7.2.0_serial
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_gcc_7.2.0_debug
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_intel_17.0.1
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_cuda_10.1.105
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_clang_10.0.0
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_python_3
Jenkins Parameters
Console Output (last 100 lines) : Trilinos_pullrequest_gcc_8.3.0 # 3708 (click to expand)
Console Output (last 100 lines) : Trilinos_pullrequest_gcc_7.2.0_serial # 1291 (click to expand)
Console Output (last 100 lines) : Trilinos_pullrequest_gcc_7.2.0_debug # 1784 (click to expand)
Console Output (last 100 lines) : Trilinos_pullrequest_intel_17.0.1 # 9137 (click to expand)
Console Output (last 100 lines) : Trilinos_pullrequest_cuda_10.1.105 # 599 (click to expand)
Console Output (last 100 lines) : Trilinos_pullrequest_clang_10.0.0 # 1961 (click to expand)
Console Output (last 100 lines) : Trilinos_pullrequest_python_3 # 4635 (click to expand)
|
@mperego @kyungjoo-kim, FYI, the test failures appear to be issues with the CI tester; it's not getting to the point of actually building, from the looks of it. |
@CamelliaDPG yeah, I've seen that in another PR today. |
Status Flag 'Pull Request AutoTester' - Testing Jenkins Projects: Pull Request Auto Testing STARTING (click to expand)Build InformationTest Name: Trilinos_pullrequest_gcc_8.3.0
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_gcc_7.2.0_serial
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_gcc_7.2.0_debug
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_intel_17.0.1
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_cuda_10.1.105
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_clang_10.0.0
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_python_3
Jenkins Parameters
Using Repos:
Pull Request Author: CamelliaDPG |
Status Flag 'Pull Request AutoTester' - Jenkins Testing: 1 or more Jobs FAILED Note: Testing will normally be attempted again in approx. 2 Hrs 30 Mins. If a change to the PR source branch occurs, the testing will be attempted again on next available autotester run. Pull Request Auto Testing has FAILED (click to expand)Build InformationTest Name: Trilinos_pullrequest_gcc_8.3.0
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_gcc_7.2.0_serial
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_gcc_7.2.0_debug
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_intel_17.0.1
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_cuda_10.1.105
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_clang_10.0.0
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_python_3
Jenkins Parameters
Console Output (last 100 lines) : Trilinos_pullrequest_gcc_8.3.0 # 3713 (click to expand)
Console Output (last 100 lines) : Trilinos_pullrequest_gcc_7.2.0_serial # 1296 (click to expand)
Console Output (last 100 lines) : Trilinos_pullrequest_gcc_7.2.0_debug # 1789 (click to expand)
Console Output (last 100 lines) : Trilinos_pullrequest_intel_17.0.1 # 9142 (click to expand)
Console Output (last 100 lines) : Trilinos_pullrequest_cuda_10.1.105 # 604 (click to expand)
Console Output (last 100 lines) : Trilinos_pullrequest_clang_10.0.0 # 1966 (click to expand)
Console Output (last 100 lines) : Trilinos_pullrequest_python_3 # 4640 (click to expand)
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great to me. Neat implmentation of getHostBasis.
Status Flag 'Pull Request AutoTester' - User Requested Retest - Label AT: RETEST will be reset after testing. |
Status Flag 'Pull Request AutoTester' - Testing Jenkins Projects: Pull Request Auto Testing STARTING (click to expand)Build InformationTest Name: Trilinos_pullrequest_gcc_8.3.0
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_gcc_7.2.0_serial
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_gcc_7.2.0_debug
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_intel_17.0.1
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_cuda_10.1.105
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_clang_10.0.0
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_python_3
Jenkins Parameters
Using Repos:
Pull Request Author: CamelliaDPG |
Status Flag 'Pull Request AutoTester' - Error: Jenkins Jobs - Error: [Jenkins] Cannot retrieve build running status on build (FATAL: ERROR : [jwrap: self.jserverinst.get_job(self.jobname):106:./support/jenkins_support.py] - General Exception: (502 Server Error: Proxy Error for url: https://ascic-jenkins.sandia.gov/job/trilinos-folder/job/Trilinos_pullrequest_gcc_7.2.0_debug/api/python)) |
Status Flag 'Pull Request AutoTester' - Jenkins Testing: 1 or more Jobs FAILED Note: Testing will normally be attempted again in approx. 2 Hrs 30 Mins. If a change to the PR source branch occurs, the testing will be attempted again on next available autotester run. Pull Request Auto Testing has FAILED (click to expand)Build InformationTest Name: Trilinos_pullrequest_gcc_8.3.0
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_gcc_7.2.0_serial
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_gcc_7.2.0_debug
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_intel_17.0.1
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_cuda_10.1.105
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_clang_10.0.0
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_python_3
Jenkins Parameters
Console Output (last 100 lines) : Trilinos_pullrequest_gcc_8.3.0 # 3720 (click to expand)
Console Output (last 100 lines) : Trilinos_pullrequest_gcc_7.2.0_serial # 1303 (click to expand)
Console Output (last 100 lines) : Trilinos_pullrequest_gcc_7.2.0_debug # 1796 (click to expand)
Console Output (last 100 lines) : Trilinos_pullrequest_intel_17.0.1 # 9149 (click to expand)
Console Output (last 100 lines) : Trilinos_pullrequest_cuda_10.1.105 # 611 (click to expand)
Console Output (last 100 lines) : Trilinos_pullrequest_clang_10.0.0 # 1973 (click to expand)
Console Output (last 100 lines) : Trilinos_pullrequest_python_3 # 4647 (click to expand)
|
Thanks, @mperego! |
/** \brief Pointer to a Basis whose device type is on the host (Kokkos::HostSpace::device_type), allowing host access to input and output views, and ensuring host execution of basis evaluation. | ||
*/ | ||
template <typename OutputType = double, typename PointType = double> | ||
using HostBasisPtr = BasisPtr<typename Kokkos::HostSpace::device_type, OutputType, PointType>; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why do you do defaulting for the output type and point type ? This should match to this output type and point type. It does not need to default with double.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@kyungjoo-kim, I followed the pattern of the BasisPtr typedef that is immediately above this typedef. It's true it doesn't need to default to double, but I think it's good to be consistent between the two typedefs.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is internal typedef of the basis. Defaulting the template arguments here and in the above does not make sense to me.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@kyungjoo-kim, ah, I see the confusion. Actually, these typedefs are not internal to the Basis class.
@@ -631,7 +627,7 @@ namespace Intrepid2 | |||
\param [in] subCellOrd - position of the subCell among of the subCells having the same dimension | |||
\return pointer to the subCell basis of dimension subCellDim and position subCellOrd | |||
*/ | |||
BasisPtr<ExecutionSpace, OutputValueType, PointValueType> | |||
Teuchos::RCP<BasisBase> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this change meaningful ? This means that the Teuchos::RCP<BasisBase>
should be the same as BasisPtr
. That just means that the BasisBase should be defined and inherited from the Basis class. I am not sure how this improves things in your implementation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, it is meaningful. BasisBase may have as its first template argument a DeviceType that is distinct from the ExecutionSpace. If so, then BasisPtr<ExecutionSpace, OutputValueType, PointValueType>
does not match the return type in the base class.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this work in the virtual override context if you change ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not entirely sure what you are asking. If you are asking whether things compile if I don't make this change, the answer is no, they do not compile.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I mean that both returns teuchos rcp and the compiler may consider this class is overriding function. If they consider this function is different, the compiler may redirect the function to its super class interface. Previously, it probably does not compile because it uses execution space template argument instead of device argument. As you mentioned, it compiles but does it override the function correctly when the object is casted to its super class (in other words, does this make sure that it has the same function signature to override) ? Unit test will tell this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@kyungjoo-kim, the method is marked as override. If the compiler considered this to be a different function from that in the base class, it would refuse to compile it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think that it looks fine.
Thanks, @kyungjoo-kim! |
Status Flag 'Pull Request AutoTester' - Testing Jenkins Projects: Pull Request Auto Testing STARTING (click to expand)Build InformationTest Name: Trilinos_pullrequest_gcc_8.3.0
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_gcc_7.2.0_serial
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_gcc_7.2.0_debug
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_intel_17.0.1
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_cuda_10.1.105
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_clang_10.0.0
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_python_3
Jenkins Parameters
Using Repos:
Pull Request Author: CamelliaDPG |
Status Flag 'Pull Request AutoTester' - Jenkins Testing: 1 or more Jobs FAILED Note: Testing will normally be attempted again in approx. 2 Hrs 30 Mins. If a change to the PR source branch occurs, the testing will be attempted again on next available autotester run. Pull Request Auto Testing has FAILED (click to expand)Build InformationTest Name: Trilinos_pullrequest_gcc_8.3.0
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_gcc_7.2.0_serial
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_gcc_7.2.0_debug
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_intel_17.0.1
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_cuda_10.1.105
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_clang_10.0.0
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_python_3
Jenkins Parameters
Console Output (last 100 lines) : Trilinos_pullrequest_gcc_8.3.0 # 3727 (click to expand)
Console Output (last 100 lines) : Trilinos_pullrequest_gcc_7.2.0_serial # 1310 (click to expand)
Console Output (last 100 lines) : Trilinos_pullrequest_gcc_7.2.0_debug # 1803 (click to expand)
Console Output (last 100 lines) : Trilinos_pullrequest_intel_17.0.1 # 9156 (click to expand)
Console Output (last 100 lines) : Trilinos_pullrequest_cuda_10.1.105 # 618 (click to expand)
Console Output (last 100 lines) : Trilinos_pullrequest_clang_10.0.0 # 1980 (click to expand)
Console Output (last 100 lines) : Trilinos_pullrequest_python_3 # 4654 (click to expand)
|
Status Flag 'Pull Request AutoTester' - User Requested Retest - Label AT: RETEST will be reset after testing. |
Status Flag 'Pull Request AutoTester' - Failure: Timed out waiting for job Trilinos_pullrequest_gcc_8.3.0 to start: Total Wait = 603
|
Status Flag 'Pull Request AutoTester' - User Requested Retest - Label AT: RETEST will be reset after testing. |
Status Flag 'Pull Request AutoTester' - Testing Jenkins Projects: Pull Request Auto Testing STARTING (click to expand)Build InformationTest Name: Trilinos_pullrequest_gcc_8.3.0
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_gcc_7.2.0_serial
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_gcc_7.2.0_debug
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_intel_17.0.1
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_cuda_10.1.105
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_clang_10.0.0
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_python_3
Jenkins Parameters
Using Repos:
Pull Request Author: CamelliaDPG |
Status Flag 'Pull Request AutoTester' - Jenkins Testing: all Jobs PASSED Pull Request Auto Testing has PASSED (click to expand)Build InformationTest Name: Trilinos_pullrequest_gcc_8.3.0
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_gcc_7.2.0_serial
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_gcc_7.2.0_debug
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_intel_17.0.1
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_cuda_10.1.105
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_clang_10.0.0
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_python_3
Jenkins Parameters
|
Status Flag 'Pre-Merge Inspection' - SUCCESS: The last commit to this Pull Request has been INSPECTED AND APPROVED by [ mperego kyungjoo-kim ]! |
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... |
@CamelliaDPG Please merge this PR. |
…s:develop' (51084e8). * trilinos-develop: Implement getHostBasis() in newer Basis subclasses (trilinos#8811) tpetra: removed Doxygen comments with incorrect advice on including _decl files MueLu: Minor fix to AggregateQualityFactory Framework: Update STALE issue closer NOX:NodeType not specified in type being cast to. Fixes inability to compile using clang. sems-rhel7 env: Add clang-10.0.0
…s:develop' (51084e8). * trilinos-develop: Panzer: Fix for ghost orientations in worksets. Implement getHostBasis() in newer Basis subclasses (trilinos#8811) Teuchos core: Reorder noreturn and DLL export tpetra: removed Doxygen comments with incorrect advice on including _decl files STK: Snapshot 02-24-21 10:53 Piro: solve a bug when more than 1 response is used MueLu: Minor fix to AggregateQualityFactory Framework: Update STALE issue closer NOX:NodeType not specified in type being cast to. Fixes inability to compile using clang. MueLu: Fix missing parameters in ML2MueLuParameterTranslator sems-rhel7 env: Add clang-10.0.0
…s:develop' (51084e8). * trilinos-develop: Panzer: Fix for ghost orientations in worksets. Implement getHostBasis() in newer Basis subclasses (trilinos#8811) Teuchos core: Reorder noreturn and DLL export tpetra: removed Doxygen comments with incorrect advice on including _decl files STK: Snapshot 02-24-21 10:53 Piro: solve a bug when more than 1 response is used MueLu: Minor fix to AggregateQualityFactory Framework: Update STALE issue closer NOX:NodeType not specified in type being cast to. Fixes inability to compile using clang. MueLu: Fix missing parameters in ML2MueLuParameterTranslator sems-rhel7 env: Add clang-10.0.0
…domain-solver * 'develop' of ssh://github.com/trilinos/Trilinos: (36 commits) Phalanx: utilities for virtual functions on device (trilinos#8840) Correct a setenv left in bash scripts. MueLu: I really hate when the autotester decides to freak out about code I didn't touch but now it is my responsibility to fix if I ever want to merge this PR MueLu: Going for gold pamgen: Fixing uninitialized memory valigrind error in RTC Update Compadre Toolkit to v1.3.3 Oops MueLu: Adding aggregates to export data MueLu: Adding aggregates to export data SEACAS: Disable tests that are failing on vortex Intrepid2 - missing typo MueLu: More Phase2a controls Panzer: Fix for ghost orientations in worksets. Implement getHostBasis() in newer Basis subclasses (trilinos#8811) Teuchos core: Reorder noreturn and DLL export tpetra: removed Doxygen comments with incorrect advice on including _decl files Intrepid2: modified CellGeometry setJacobian() implementation to allow reuse of reference-space basis gradients. STK: Snapshot 02-24-21 10:53 Tempus: Move Stepper Helper Functions to Implementation Piro: solve a bug when more than 1 response is used ...
…develop' (b58c085). * potential-trilinos-develop: (121 commits) drivers/atdm: Fix proxy environment zoltan: minor changes to make non-c99 compilers happy trilinos#8816 (trilinos#8817) MueLu: Rebase gold files MueLu Interface test: skip default values in ML runs MueLu ML2MueLuParameterTranslator: Correctly translate verbosity Phalanx: utilities for virtual functions on device (trilinos#8840) Fix an error introduced in PR 8829 Correct a setenv left in bash scripts. MueLu: I really hate when the autotester decides to freak out about code I didn't touch but now it is my responsibility to fix if I ever want to merge this PR MueLu: Going for gold pamgen: Fixing uninitialized memory valigrind error in RTC Update Compadre Toolkit to v1.3.3 Oops MueLu: Adding aggregates to export data MueLu: Adding aggregates to export data SEACAS: Disable tests that are failing on vortex Intrepid2 - missing typo MueLu: More Phase2a controls Panzer: Fix for ghost orientations in worksets. Implement getHostBasis() in newer Basis subclasses (trilinos#8811) ...
@trilinos/intrepid2
Motivation
This is part of #8310.
Intrepid2: added getHostBasis() implementations for several Basis subclasses, along with support for DeviceType template arguments in the same.
Specifically, the following classes now support getHostBasis and DeviceType template arguments:
Other changes:
Testing
The modified tests within
MonolithicExecutable
exercise getHostBasis() on all modified bases. These also test the modified bases with the UVM-free DeviceType when run under CUDA.