You could use tensor.unfold to create these patches, but you would still need to allocate the memory for the output.
If you want to return a contiguous tensor, it has to be created at some point, even in some internal PyTorch functions.
Let me know, if I misunderstood your question.