At present, amdgpu plugin merges both asynchronous and synchronous kernel launch implementations into a single synchronous version.
This patch prepares the plugin for asynchronous implementation by:
- Separating the control flow path of asynchronous and synchronous kernel launch functions
- Privatize actual kernel launch code (valid in both cases) into an anonymous namespace base function