I have noticed that the results of `torch.sum`

and the addition operator are not always equal.

For example:

```
import torch
def f():
a = torch.rand(100).view(10,10)
s1 = torch.sum(a, dim=0)
s2 = torch.zeros(10)
for i in range(10):
s2 += a[i]
assert (s1 == s2).all()
for i in range(1000):
f()
```

Running the above code results in assertion failure. If I check the difference between `s1`

and `s2`

, they are generally of the order of `1e-7`

Similar numpy code however seems to not have this issue.

```
import numpy as np
def f():
a = np.random.rand(100).astype(np.float32).reshape((10,10))
s1 = np.sum(a, axis=0)
s2 = np.zeros(10, dtype=np.float32)
for i in range(10):
s2 += a[i]
assert (s1 == s2).all()
for i in range(1000):
f()
```

I have run this several times and haven’t had any assertion errors so far.

Is this behavior simply because of floating point precision or is there something else that is causing this issue?