The kernel's O_unnorm is max-shifted (divided by 2^row_max), so O_norm != O_unnorm * exp(-LSE). Instead, O_norm = O_unnorm / row_sum. Added mRowSums output tensor to enable correct normalization.
The kernel's O_unnorm is max-shifted (divided by 2^row_max), so O_norm != O_unnorm * exp(-LSE). Instead, O_norm = O_unnorm / row_sum. Added mRowSums output tensor to enable correct normalization.