I think the memory footprint is expected as described here 17.
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() * 4) / 1024**2)

Note that I reduced the number of elements, but it should be the same relative usage compared to the dense tensor.