Sorry I was away for a  few days.
The sum operation is defined in this 1 file in the backend.
There are few levels of indirection before you get there though especially for type dispatching. I’m don’t remember all of them atm. But my best bet is that the accumulation type for ByteTensor is defined as LongTensor and so the casting is done and the op is done as if you had a LongTensor from the beginning.
I’m not familiar with what you call sliced sum here? How would that prevent overflows?