Refactor operators to methods.
- Dominant language
- Cuda
- Stars
- 0
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
As it stands, thrust::for_each calls using the operators incur memory transfer penalties for each call (to and from device). However, this structure also makes it super easy to test the methods. The key decisions that need to be made are:
- Does it make sense for each functional unit to be it's own struct/operator when they are stateless?
- Should they just be methods?
- If they are methods, how would they be used?
- Can we keep them as operators and avoid the host/device memory transfer cost?
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by tracing the thrust::for_each call sites and the functional units currently represented as operators. Compare how the existing structure is tested with where host/device memory transfers occur; done means choosing and documenting a consistent operator-versus-method design that addresses the transfer cost without losing testability.
Written by the indexing model from the issue text.
Assessment
- Domain
- performance
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100