vulkan: skip integer div/mod in get_offsets for batch_idx==0 (#10506)

This commit is contained in:
Jeff Bolz 2024-11-27 01:08:54 -06:00 committed by GitHub
parent 4a57d362e1
commit 71a64989a5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -52,13 +52,16 @@ void get_offsets(out uint a_offset, out uint b_offset, out uint d_offset) {
#endif #endif
#ifndef MUL_MAT_ID #ifndef MUL_MAT_ID
const uint i13 = batch_idx / p.ne12; uint batch_idx_a = 0;
const uint i12 = batch_idx % p.ne12; if (batch_idx != 0) {
const uint i13 = batch_idx / p.ne12;
const uint i12 = batch_idx % p.ne12;
const uint i03 = i13 / p.broadcast3; const uint i03 = i13 / p.broadcast3;
const uint i02 = i12 / p.broadcast2; const uint i02 = i12 / p.broadcast2;
const uint batch_idx_a = i03 * p.ne02 + i02; batch_idx_a = i03 * p.ne02 + i02;
}
#else #else
const uint expert_id = data_ids[expert_idx]; const uint expert_id = data_ids[expert_idx];
#endif #endif