As it turns out I was initializing the returned tensor as a float, and because of the kernel launch macro for floating points, I didn’t realize I was actually doing some implicit conversion in the kernel. This became clear when I tested with actual decimal data instead of integers.
It’s always something simple…