File size: 2,739 Bytes
cc372ac 02b5975 cc372ac 02b5975 cc372ac 02b5975 cc372ac 02b5975 cc372ac 02b5975 cc372ac 02b5975 cc372ac 02b5975 cc372ac 02b5975 cc372ac 02b5975 cc372ac 02b5975 cc372ac 02b5975 cc372ac 02b5975 cc372ac 02b5975 cc372ac 02b5975 cc372ac 02b5975 cc372ac |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
//
// SPDX-FileCopyrightText: Hadad <hadad@linuxmail.org>
// SPDX-License-Identifier: Apache-2.0
//
#include "accelerator_core.hpp"
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <string>
void print_usage(const char* program_name) {
std::cout << "Usage: " << program_name << " [options]" << std::endl;
std::cout << std::endl;
std::cout << "Options:" << std::endl;
std::cout << " --socket PATH IPC socket path (default: /tmp/pocket_tts_accelerator.sock)" << std::endl;
std::cout << " --threads N Number of worker threads (default: 2)" << std::endl;
std::cout << " --memory MB Memory pool size in megabytes (default: 64)" << std::endl;
std::cout << " --quiet Disable verbose logging" << std::endl;
std::cout << " --help Show this help message" << std::endl;
std::cout.flush();
}
int main(int argc, char* argv[]) {
std::cout.setf(std::ios::unitbuf);
std::cerr.setf(std::ios::unitbuf);
pocket_tts_accelerator::AcceleratorConfiguration configuration =
pocket_tts_accelerator::AcceleratorCore::get_default_configuration();
for (int argument_index = 1; argument_index < argc; ++argument_index) {
std::string argument(argv[argument_index]);
if (argument == "--help" || argument == "-h") {
print_usage(argv[0]);
return 0;
}
if (argument == "--socket" && argument_index + 1 < argc) {
configuration.ipc_socket_path = argv[++argument_index];
continue;
}
if (argument == "--threads" && argument_index + 1 < argc) {
configuration.number_of_worker_threads = std::stoul(argv[++argument_index]);
continue;
}
if (argument == "--memory" && argument_index + 1 < argc) {
std::size_t memory_mb = std::stoul(argv[++argument_index]);
configuration.memory_pool_size_bytes = memory_mb * 1024 * 1024;
continue;
}
if (argument == "--quiet" || argument == "-q") {
configuration.enable_verbose_logging = false;
continue;
}
std::cerr << "Unknown argument: " << argument << std::endl;
print_usage(argv[0]);
return 1;
}
if (configuration.number_of_worker_threads < 1) {
configuration.number_of_worker_threads = 1;
}
if (configuration.number_of_worker_threads > 2) {
configuration.number_of_worker_threads = 2;
}
pocket_tts_accelerator::AcceleratorCore accelerator(configuration);
if (!accelerator.initialize()) {
std::cerr << "Failed to initialize accelerator" << std::endl;
return 1;
}
accelerator.run();
return 0;
} |