Use shared memory to store intermediate values in evaluation_kernel_impl
- Dominant language
- C++
- Stars
- 245
- Forks
- 36
- Avg merge
- 8d 23h
- Merged PRs (30d)
- 4
Description
https://github.com/LLNL/serac/pull/1026 allocates `qf_inputs` either on the heap for CPU implementations or in global device memory for GPU implementations. By reducing shared memory usage (potentially by dynamically allocating memory and using a tensor view inside `interpolate` and `integrate`), it may be possible to store these in shared memory which will be drastically more performant.
Contributor guide
Research direction
Start by reviewing PR #1026 and the implementation of evaluation_kernel_impl, focusing on qf_inputs and the interpolate and integrate paths. Determine whether shared-memory allocation and a tensor view are feasible after reducing current shared-memory usage. Done means intermediate values use shared memory where appropriate and performance is validated against the existing CPU and GPU behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- hpc, performance
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100