#include "../node_context.h" #include "../op_table.h" #include "../utils.h" #include #include namespace ov { namespace frontend { namespace ggml { namespace op { // GGML cumsum computes prefix sum along dim 0 (the innermost/fastest dimension). // In OV layout the dims are reversed: ggml [ne0, ne1, ne2, ne3] → OV [ne3, ne2, ne1, ne0], // so ggml dim 0 maps to OV axis 3 (last axis). OutputVector translate_cumsum(const NodeContext & context) { num_inputs_check(context, 1, 1); auto x = context.get_input(0); auto axis = ov::op::v0::Constant::create(ov::element::i64, {}, {3}); auto res = std::make_shared(x, axis); return rename_outputs_with_suffix({res}, context.get_name()); } } // namespace op } // namespace ggml } // namespace frontend } // namespace ov