Requisitos de sistema¶
A configuração do hardware necessário para executar o Texto Fala depende de alguns fatores, como:
Quantidade de sessões simultâneas de síntese
Quantidade de vozes carregadas ao mesmo tempo
Em geral, o requisito de memória aumenta na medida em que mais vozes são utilizadas ao mesmo tempo, enquanto que o requisito de CPU aumenta na medida em que mais sessões de síntese precisam estar disponíveis simultaneamente.
Aviso
Processadores x86 modernos usualmente implementam SMT (simultaneous multithreading) e possuem os conceitos de núcleo e thread (não confundir com threads do sistema operacional). Neste caso, cada núcleo do processador possui threads de execução que compartilham recursos do núcleo. Se SMT estiver habilitado, o número de vCPUs apresentado pelo sistema operacional será maior que o número de núcleos disponíveis (e.g. o dobro se cada núcleo possui duas threads).
O Texto Fala é uma aplicação que faz uso intensivo de CPU e, para obter o melhor desempenho possível, o uso de threads da CPU deve ser evitado. Ao reservar recursos computacionais para os serviços do Texto Fala, assegure-se de que o número de vCPUs alocados contemple a quantidade necessária de núcleos do processador. Pode ser necessário alocar mais vCPUs para garantir o número de núcleos requeridos (e.g. se cada núcleo possui duas threads, seriam necessários o dobro do número de vCPUs). Consulte o arquivo /proc/cpuinfo
para identificar a arquitetura do processador em uso.
O Texto Fala é implantando em um cluster Kubernetes, que permite a criação de um ambiente robusto e escalável.
Requisitos por serviço¶
Serviço Neural API¶
Processador: Processador x86 de 64-bits com frequência base de 2.4 GHz ou superior e suporte para instruções SSE4 e AVX2. Recomenda-se o uso de processadores AMD ou Intel produzidos a partir de 2016. O produto pode funcionar com procesadores mais antigos, mas potencialmente com desempenho inferior.
É essencial que um mesmo núcleo do processador não seja compartilhado entre máquinas virtuais. Recomenda-se que o número de núcleos disponíveis seja, pelo menos, 10% do número total de sessões de sínteses que se deseja alcançar.
Memória: A quantidade necessária de memória está relacionada a quantidade sessões que serão utilizadas simultâneamente, sendo que cada sessão requer cerca de 10 MiB. Recomenda-se reservar, pelo menos, 512 MiB de memória.
Serviço Neural Engine¶
Processador: Processador x86 de 64-bits com frequência base de 2.4 GHz ou superior e suporte para instruções SSE4 e AVX2. Recomenda-se o uso de processadores AMD ou Intel produzidos a partir de 2016. O produto pode funcionar com procesadores mais antigos, mas potencialmente com desempenho inferior. É essencial que um mesmo núcleo do processador não seja compartilhado entre máquinas virtuais.
Cada núcleo do processador é capaz de sintetizar de 2 a 3 requisições em tempo real. Para aplicações que precisam realizar a síntese online (e.g. durante uma ligação telefônica), recomenda-se fazer até 2 sínteses por núcleo. Caso a funcionalidade de SMT do processador esteja ativa, o serviço utilizará apenas uma thread por núcleo.
Memória: A quantidade necessária de memória está relacionada a quantidade de vozes e sessões que serão utilizadas simultâneamente. Cada voz acrescenta cerca de 1,5 GB no consumo de memória, enquanto cada sessão requer cerca de 20 MiB. Recomenda-se reservar 512 MiB adicionais.
Serviço Linguístico¶
Processador: Processador x86 de 64-bits com frequência base de 2.0 GHz ou superior. Recomenda-se o uso de processadores AMD ou Intel produzidos a partir de 2016. O produto pode funcionar com procesadores mais antigos, mas potencialmente com desempenho inferior.
Recomenda-se o uso de dois núcleos para cenários com até 100 sessões e 4 núcleos para os demais casos. Este serviço pode se beneficiar com o uso de SMT.
Memória: 512 MiB de memória livre.
Ambiente de referência¶
Segue abaixo a especificação das instâncias de um cluster para suportar a demanda de 48 sínteses simultâneas e produzir fala em tempo real utilizando duas vozes.
Serviço |
Instâncias |
Especificação |
Neural API |
1 |
|
Neural Engine |
2 |
|
Language |
1 |
|