Skip to content
This repository was archived by the owner on Aug 20, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion kernels
Submodule kernels updated 3 files
+20 −2 pushpull/1d.h
+29 −2 pushpull/2d.h
+42 −4 pushpull/3d.h
9 changes: 8 additions & 1 deletion pushpull.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -531,10 +531,17 @@ void push_backward(
offset_t inp_offset,
offset_t ginp_offset)
{
// The kernel's `stride` argument indexes `ginp` -- the *splatted
// volume* (shape `size_splinc`), which push_backward gathers from --
// so it must be `stride_ginp`, not `stride_inp` (which strides the
// grid-shaped forward input, and is only used for the `isc` channel
// step + the outer `inp_offset`). jitfields passed `stride_inp` here;
// that is latently wrong and only agrees when the pushed volume and
// the grid happen to have identical spatial strides.
return PushPull<ndim, IX, BX, IY, BY, IZ, BZ, abs>::push_backward(
out + out_offset, gout + gout_offset,
inp + inp_offset, ginp + ginp_offset,
loc, size_splinc + nbatch, stride_inp + nbatch,
loc, size_splinc + nbatch, stride_ginp + nbatch,
nc, osc, isc, osg, isg, _bnd, _spl);
};

Expand Down