Unified Shared Memory (USM) is as an alternative to buffers for managing and accessing memory from the host and device. USM Requires hardware support for unified virtual address space (allows for consistent pointer values between host and device). All memory is allocated by the host, but it offers three distinct allocation types – Host, Device And Shared. This approach is very helpful for users who uses pointer in their existing code and wants to migrate to USM.