There are 2 ways, BranchCache and PeerCache.
Branch cache is Windows feature and Peer cache is SCCM feature.
Assuming you have done all the pre-requisites and configuration correctly.
In my experience branch cache works, when you deploy the package to a small group of PCs ahead of time. So that those PCs act as a source for other PCs in that subnet.
Also having both Peer cache and Branch cache at the same time works too.