You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Add wp.tile_dot() for fused element-wise multiply and reduce #1364
Computing a dot product between two tiles currently requires three separate operations: wp.tile_map(wp.mul, a, b) to create an element-wise product tile, wp.tile_sum() to reduce it, and wp.tile_extract() to get the scalar result. This creates intermediate tiles (both register and shared) that consume registers and shared memory unnecessarily.
A dedicated wp.tile_dot(a, b) primitive would:
Return a scalar value directly (not a tile), broadcast to all threads
Create no intermediate tiles â fuse the multiply, local reduction, and warp reduction into one operation
Reduce register pressure and shared memory usage in tight inner loops
scalar=wp.tile_dot(a, b) # full contraction, broadcast to all threads
a, b: tiles with the same shape and dtype.
Returns the tile's scalar type (so a tile of vec3f returns float), matching PyTorch / JAX / Triton sum() semantics.
Internally performs a full tensordot per element pair, then a block-wide sum, with no intermediate tiles or tile_extract round trip. Equivalent to wp.tile_extract(wp.tile_sum(wp.tile_map(wp.tensordot, a, b)), 0).
Activity
Add wp.tile_axpy() and wp.tile_dot() fused tile primitives (NVIDIAGH-âĶ
Add wp.tile_axpy() and wp.tile_dot() fused tile primitives (NVIDIAGH-âĶ
adj_tile_dotis missing a block-wide broadcast ofadj_ret#1374shi-eric commentedon Apr 19, 2026
Closed by commit
5bef033.a,b: tiles with the same shape and dtype.vec3freturnsfloat), matching PyTorch / JAX / Tritonsum()semantics.tensordotper element pair, then a block-wide sum, with no intermediate tiles ortile_extractround trip. Equivalent towp.tile_extract(wp.tile_sum(wp.tile_map(wp.tensordot, a, b)), 0).