llnl / llnl/smith

Use shared memory to store intermediate values in evaluation_kernel_impl

Open
#1,104 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.