Similar to device::malloc, device::umalloc allocates bytes bytes in device memory.
However, the return value is a pointer in host memory of the same size.
The host and device data are synchronized through device::finish() or other UVA methods.
If src is passed, the newly allocated memory is initialized with data from src.
Some devices might have muliple forms of memory allocation.
The optional props argument is present for exposing such features in future backends.
Bytes allocated for the returned occa::memory
If passed, data from src initializes the occa::memory
Additional information to initialize the occa::memory