Feature #3135
Feature #3115: Device stream manager
Make GPU traits ino opaque types
Description
The GPU traits types include:
- GPU stream (cudaStream_t in CUDA, cl_command_queue in OpenCL)
- GPU context (not used in CUDA, cl_context in OpenCL)
- GPU events (not used in CUDA, cl_event in OpenCL)
These should be made into the opaque types to make the code platform agnostic.
TODO:
- Use the new structures in:
- PME
- NBNXM
- HaloExchenage
- Do not create an empty context all the time (e.g. by making the DeviceContext deviceContext_ = DeviceContext{}; field in the UpdateConstraints)
- Finish the renaming (commandStream -> deviceStream, etc. for fields and local variables)