Solved by ptrblck in post #2 
              
              
                I think the memory footprint is expected as described here. 
For your sparsity, this would be the memory usage: 
DEVICE = 'cuda:0'

n = 100
c = .6

t1 = torch.randn(100, n, n).to('cuda')
t1[torch.rand_like(t1) > c] = 0
t2 = t1.to_sparse()

print((t2.indices().nelement() * 8 + t2.values().nelement() …