Maxwell does not have unified memory -> custom code compared to latest generation along with performance disadvantages.
Unified memory is useful during development when porting the application, but I don't know of any well-tuned applications that use it.
Any "well-tuned" multi-threaded application requires unified memory for simultaneous access to managed memory from the CPU and GPUs as it is not possible with compute capability lower than 6.0. This is because pre-Pascal GPUs lack hardware page faulting, so coherence can’t be guaranteed. On these GPUs, an access from the CPU while a kernel is running will cause a segmentation fault.