LLNL / CARE

CHAI and RAJA provide an excellent base on which to build portable codes. CARE expands that functionality, adding new features such as loop fusion capability and a portable interface for many numerical algorithms. It provides all the basics for anyone wanting to write portable code.
BSD 3-Clause "New" or "Revised" License
29 stars 4 forks source link

Use RAJA plugin capability #224

Closed neelakausik closed 1 year ago

neelakausik commented 1 year ago

CARE had custom infrastructure for doing things before and after RAJA loops. This branch moves debug and profile related code into actual RAJA plugins and makes both plugins optional. It also introduces a requirement to use CHAI's RAJA plugin to make sure data is moved to the correct execution space.

adayton1 commented 1 year ago

I think I've made my last round of comments. Once you've addressed them, then we can do some more testing/profiling.

dtaller commented 1 year ago

Could you add a pull request description at the top?

dtaller commented 1 year ago

Also, care builds some internal tests (see care/test/ folder ). Do you think any tests are needed? Or would it be difficult to add unit tests for this type of feature?

adayton1 commented 1 year ago

Also, care builds some internal tests (see care/test/ folder ). Do you think any tests are needed? Or would it be difficult to add unit tests for this type of feature?

Testing this would require specialized infrastructure that we don't have. Since this is for debugging and profiling, I don't think it's worth trying to put in special infrastructure.

adayton1 commented 1 year ago

Could you add a pull request description at the top?

I expanded on Neela's description. Let me know if it's not clear.

dtaller commented 1 year ago

Also, care builds some internal tests (see care/test/ folder ). Do you think any tests are needed? Or would it be difficult to add unit tests for this type of feature?

Testing this would require specialized infrastructure that we don't have. Since this is for debugging and profiling, I don't think it's worth trying to put in special infrastructure.

That's fine, no problem then.

Could you add a pull request description at the top?

I expanded on Neela's description. Let me know if it's not clear.

Thanks, that works for me.

dtaller commented 1 year ago

Thanks for your work!

I think that all my comments were addressed except for the alias for the strange map "using ActionMap = std::unordered_map<void , std::function<void(chai::ExecutionSpace, const char , int)>>". Either make the change or tell me if you ultimately decided not to do that, and then I'll approve