MCPcopy Create free account
hub / github.com/0xShug0/audio.cpp / decoder_prefill_input

Function decoder_prefill_input

src/models/heartmula/generator.cpp:252–275  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

250}
251
252std::vector<float> decoder_prefill_input(
253 const HeartMuLaBackboneHidden & last_hidden,
254 const HeartMuLaMergedEmbeddings & c0_embedding) {
255 if (last_hidden.dims <= 0 || c0_embedding.dims != last_hidden.dims || c0_embedding.steps != 1) {
256 throw std::runtime_error("HeartMuLa decoder prefill embedding shape mismatch");
257 }
258 const int64_t batch = c0_embedding.batch_size;
259 std::vector<float> out(static_cast<size_t>(batch * 2 * last_hidden.dims), 0.0F);
260 for (int64_t b = 0; b < batch; ++b) {
261 const size_t hidden_src = static_cast<size_t>(b * last_hidden.dims);
262 const size_t c0_src = static_cast<size_t>(b * last_hidden.dims);
263 const size_t dst0 = static_cast<size_t>((b * 2) * last_hidden.dims);
264 const size_t dst1 = static_cast<size_t>((b * 2 + 1) * last_hidden.dims);
265 std::copy(
266 last_hidden.values.begin() + static_cast<std::ptrdiff_t>(hidden_src),
267 last_hidden.values.begin() + static_cast<std::ptrdiff_t>(hidden_src + last_hidden.dims),
268 out.begin() + static_cast<std::ptrdiff_t>(dst0));
269 std::copy(
270 c0_embedding.values.begin() + static_cast<std::ptrdiff_t>(c0_src),
271 c0_embedding.values.begin() + static_cast<std::ptrdiff_t>(c0_src + last_hidden.dims),
272 out.begin() + static_cast<std::ptrdiff_t>(dst1));
273 }
274 return out;
275}
276
277std::vector<int32_t> generate_frame_from_backbone(
278 const HeartMuLaBackboneResult & backbone_result,

Callers 1

Calls 2

copyFunction · 0.85
beginMethod · 0.45

Tested by

no test coverage detected