Just out of curiosity, is there way to allocate memory on the MIC from the host or does the offload engine entirely responsible for this?
With offload the offload engine should perform the allocation. The Behind the Scenes: Offload Memory Management on the Intel® Xeon Phi™ coprocessor blog discusses reasons why.
One can allocate/manage heap-allocated data within an offload region if that's the interest. Refer to Explicitly managed Heap-allocated Data discussed here. A related thread here may offer further insight.