1. A method for sharing memory between a central processing unit (CPU) and graphics processing unit (GPU) of a computing device, comprising: creating an allocation of memory for the GPU to operate on; detecting whether the allocation is not page-aligned, wherein an allocation is page-aligned when a base address of the allocation and size of the allocated are evenly divisible by the applicable page-size; and successfully sharing the allocation, even if not page-aligned, and even if an operating system of the computing device doesn't support sharing of non-page-aligned allocations.