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

Method run

src/models/chatterbox/s3gen_flow.cpp:933–968  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

931 output_frames_(frames * 2),
932 embed_prelook_runner_(weights, frames, hidden_size, backend_config),
933 upsample_runner_(weights, frames, hidden_size, backend_config),
934 after_norm_runner_(weights.after_norm, *weights.execution_context, output_frames_, hidden_size, backend_config) {
935 encoder_runners_.reserve(weights.encoders.size());
936 for (const auto & layer : weights.encoders) {
937 encoder_runners_.push_back(
938 std::make_unique<FlowEncoderLayerBackendRunner>(
939 layer, *weights.execution_context, input_frames_, hidden_size_, backend_config));
940 }
941 up_encoder_runners_.reserve(weights.up_encoders.size());
942 for (const auto & layer : weights.up_encoders) {
943 up_encoder_runners_.push_back(
944 std::make_unique<FlowEncoderLayerBackendRunner>(
945 layer, *weights.execution_context, output_frames_, hidden_size_, backend_config));
946 }
947 }
948
949 S3FlowEncoderOutputs run(const std::vector<float> & input, int64_t valid_frames) {
950 const auto attention_mask_values = make_attention_key_mask(1, input_frames_, input_frames_, valid_frames);
951 embed_prelook_runner_.write_input(input);
952 embed_prelook_runner_.compute();
953
954 auto * previous_output = &embed_prelook_runner_.output_tensor();
955 for (auto & runner : encoder_runners_) {
956 runner->write_attention_mask(attention_mask_values);
957 copy_backend_tensor(*previous_output, runner->input_tensor());
958 runner->compute();
959 previous_output = &runner->output_tensor();
960 }
961
962 copy_backend_tensor(*previous_output, upsample_runner_.input_tensor());
963 upsample_runner_.compute();
964
965 const int64_t valid_output_frames = valid_frames * 2;
966 const auto up_attention_mask_values = make_attention_key_mask(1, output_frames_, output_frames_, valid_output_frames);
967 previous_output = &upsample_runner_.output_tensor();
968 for (auto & runner : up_encoder_runners_) {
969 runner->write_attention_mask(up_attention_mask_values);
970 copy_backend_tensor(*previous_output, runner->input_tensor());
971 runner->compute();

Calls 6

make_attention_key_maskFunction · 0.85
copy_backend_tensorFunction · 0.85
write_inputMethod · 0.80
computeMethod · 0.45
write_attention_maskMethod · 0.45
read_outputMethod · 0.45

Tested by

no test coverage detected