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

Caliper support #1773

Merged
merged 100 commits into from
Apr 4, 2025
Merged

Caliper support #1773

merged 100 commits into from
Apr 4, 2025

Conversation

artv3
Copy link
Member

@artv3 artv3 commented Nov 25, 2024

Initial pass at building with Caliper and plugins:

To build:

 cmake -DRAJA_ENABLE_RUNTIME_PLUGINS=ON  -DRAJA_ENABLE_CALIPER=ON 
 Dcaliper_DIR=${PATH_TO_CALIPER}/share/cmake/caliper ../

Example run:

CALI_CONFIG=runtime-report ./bin/raja-forall-caliper 

Example output:

RAJA daxpy example...

 Running C-version of daxpy...
C-version elapsed time : 0.000800389 seconds

 Running RAJA sequential daxpy...
 found a kernel name: CALI: RAJA Seq daxpy Kernel assigning it to kernel... 
C-version elapsed time : 0.00073108 seconds

	 result -- PASS

 Running RAJA SIMD daxpy...
 found a kernel name: CALI: RAJA SIMD daxpy Kernel assigning it to kernel... 
C-version elapsed time : 0.000618763 seconds

	 result -- PASS

 DONE!...
Path                           Time (E) Time (I) Time % (E) Time % (I) 
main                           0.014619 0.016770  85.817194  98.442387 
  CALI: C-version elapsed time 0.000825 0.000825   4.841826   4.841826 
  CALI: RAJA Seq daxpy Kernel  0.000716 0.000716   4.201835   4.201835 
  CALI: RAJA SIMD daxpy Kernel 0.000610 0.000610   3.581532   3.581532

Observations:
Caliper timings are consistent with the RAJA timer function.

//----------------

Example with RAJA launch
RAJA daxpy example...

 Running C-version of daxpy...
C-version elapsed time : 0.00844832 seconds

 Running launch sequential daxpy...
-----RAJA launch!----
C-version elapsed time : 0.000656656 seconds

	 result -- PASS

 DONE!...
Path                         Time (E) Time (I) Time % (E) Time % (I) 
CALI: C-version elapsed time 0.000742 0.000742  15.170097  15.170097 
CALI: launch kernel          0.000643 0.000643  13.152635  13.152635 

TODO:

  • Handle the case in which no kernel name is provided.....
  • Remove old kernel naming interface from RAJA::launch
  • Documentation, examples, and slides....
  • Clean up code

This PR changes KernelName -> Name

@artv3 artv3 changed the title Artv3/caliper support Draft: Caliper support Nov 25, 2024
@artv3
Copy link
Member Author

artv3 commented Dec 20, 2024

TODO: Compare the Caliper results with standard timers.

@artv3
Copy link
Member Author

artv3 commented Dec 27, 2024

This isn't quite done, but I do want to trigger the CI to double check that we are passing test across the board.

@artv3 artv3 marked this pull request as ready for review December 27, 2024 16:23
@artv3 artv3 changed the title Draft: Caliper support Caliper support Dec 28, 2024
@artv3
Copy link
Member Author

artv3 commented Apr 1, 2025

Everything should now be addressed, thanks team!

Copy link
Member

@rhornung67 rhornung67 left a comment

Choose a reason for hiding this comment

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

One minor comment, which you can choose to ignore.

@artv3
Copy link
Member Author

artv3 commented Apr 4, 2025

@LLNL/raja-core , I think we should be good to go now -- I also turned on RAJA_ENABLE_PLUGINS within our docker clang15 build. Would someone be able to weigh in if that would have caught @MrBurmark's expected build test failure?

Any objections to merging if this comes out green?

Remember to remove when we remove support for the old plugin name
@MrBurmark
Copy link
Member

MrBurmark commented Apr 4, 2025

I explicitly added a "getPlugin" test and manually confirmed that it fails if the "getPlugin" loading code is not there.
I went ahead and approved the PR.

@artv3 artv3 merged commit 700cffc into develop Apr 4, 2025
27 checks passed
@artv3 artv3 deleted the artv3/caliper-support branch April 4, 2025 19:52
@artv3
Copy link
Member Author

artv3 commented Apr 4, 2025

I explicitly added a "getPlugin" test and manually confirmed that it fails if the "getPlugin" loading code is not there. I went ahead and approved the PR.

Awesome! Thanks!

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.

6 participants