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

Method run

src/models/ace_step/session.cpp:190–312  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

188}
189
190runtime::TaskResult AceStepSession::run(const runtime::TaskRequest &request) {
191 require_prepared("ACE-Step run()");
192 const auto total_start = Clock::now();
193
194 const auto parse_start = Clock::now();
195 const AceStepRequest ace_request = ace_step_parse_request(request);
196 const AceStepTaskRoute &route = ace_step_task_route(ace_request);
197 validate_task_route_request(ace_request, route);
198 engine::debug::timing_log_scalar("ace_step.session.parse_request_ms", engine::debug::elapsed_ms(parse_start, Clock::now()));
199
200 AceStepPlan plan;
201 const bool flow_edit_morph = ace_step_request_uses_flow_edit_morph(ace_request);
202 const bool has_request_audio_codes = !flow_edit_morph && !ace_request.audio_code_ids.empty();
203 const bool use_planner =
204 !flow_edit_morph &&
205 route.uses_planner &&
206 (ace_request.generation.thinking || ace_step_request_needs_lm_for_cot(ace_request));
207 const bool generate_planner_audio_codes = ace_request.generation.thinking && !has_request_audio_codes;
208 if (use_planner) {
209 const auto planner_ensure_start = Clock::now();
210 ensure_planner();
211 engine::debug::timing_log_scalar("ace_step.session.ensure_planner_ms",
212 engine::debug::elapsed_ms(planner_ensure_start, Clock::now()));
213 const auto planner_start = Clock::now();
214 plan = planner_->generate(ace_request, generate_planner_audio_codes);
215 engine::debug::timing_log_scalar("ace_step.session.planner_generate_ms",
216 engine::debug::elapsed_ms(planner_start, Clock::now()));
217
218 const auto planner_release_start = Clock::now();
219 planner_->release_graph_workspace();
220 if (execution_context().backend_type() == core::BackendType::Metal) {
221 planner_.reset();
222 }
223 engine::debug::timing_log_scalar("ace_step.session.planner_release.graph.workspace_ms",
224 engine::debug::elapsed_ms(planner_release_start, Clock::now()));
225 } else {
226 engine::debug::timing_log_scalar("ace_step.session.ensure_planner_ms", 0.0);
227 engine::debug::timing_log_scalar("ace_step.session.planner_generate_ms", 0.0);
228 engine::debug::timing_log_scalar("ace_step.session.planner_release.graph.workspace_ms", 0.0);
229 plan = make_direct_dit_plan(ace_request, route);
230 if (execution_context().backend_type() == core::BackendType::Metal) {
231 planner_.reset();
232 }
233 }
234 apply_request_audio_codes(plan, ace_request);
235 validate_task_route_source_input(ace_request, route, plan);
236
237 const auto pre_dit_ensure_start = Clock::now();
238 ensure_pre_dit();
239 engine::debug::timing_log_scalar("ace_step.session.ensure_pre_dit_ms",
240 engine::debug::elapsed_ms(pre_dit_ensure_start, Clock::now()));
241 const auto pre_dit_start = Clock::now();
242 AceStepPreDitInputs pre_dit = pre_dit_->prepare(ace_request, route, plan);
243 engine::debug::timing_log_scalar("ace_step.session.pre_dit_prepare_ms", engine::debug::elapsed_ms(pre_dit_start, Clock::now()));
244
245 const auto diffusion_ensure_start = Clock::now();
246 ensure_diffusion();
247 engine::debug::timing_log_scalar("ace_step.session.ensure_diffusion_ms",

Callers

nothing calls this directly

Tested by

no test coverage detected