Back to feed

b8420

Mar 19, 2026
Meta/llama.cppCLIvb8420

CANN: handle in-place ROPE on non-contiguous f32 tensors (#20274)

RotaryPositionEmbedding on CANN fails when src and dst share the same non-contiguous buffer (inplace + view), because the operator overwrites source data before it is fully read.

Add a branch that detects this case and uses contiguous temporary buffers: copy src to temp, run ROPE into another temp, then copy back to the non-contiguous dst. Fixes 20 failing ROPE tests (f32, v=1, inplace=1).

Signed-off-by: noemotiovon 757486878@qq.com

macOS/iOS:

Linux:

Windows:

openEuler: