grandfather existing implementation behavior for applications coming from both gpu-centric and cpu-centric.
- If an implementation had been traditionally cpu-centric, existing code should continue to work (and use the CPU heap)
- If an implementation had been traditionally gpu-centric, existing code should continue to work (and use the GPU heap)
- A (new) mechanism should be available for advanced users to control what heap they malloc from
- A (new) mechanism should be available for advanced users to query what type of heap they allocated from