Simple Science

Ciência de ponta explicada de forma simples

# Informática# Computação distribuída, paralela e em cluster

Maximizando o desempenho de DNN: Agrupamento vs. Multi-inquilino

Uma olhada em estratégias pra melhorar o desempenho de DNN em aplicações em tempo real.

― 8 min ler


Estratégias deEstratégias dePerformance de DNNbatching e multi-tenancy.Aumentando a eficiência de DNN com
Índice

À medida que a tecnologia avança, a demanda por serviços rápidos e eficientes usando aprendizado de máquina (ML) tá crescendo. As empresas querem oferecer recursos em tempo real, o que significa que precisam de sistemas que consigam tomar decisões rápidas com base nos dados. Um tipo de sistema que ajuda nessa tarefa é chamado de rede neural profunda (DNN). As DNNs são ferramentas poderosas que conseguem analisar e interpretar dados, mas elas precisam de bastante poder de computação pra funcionar direitinho.

Pra alcançar um bom desempenho, é comum usar um hardware especial chamado GPUs (Unidades de Processamento Gráfico). Essas GPUs conseguem rodar várias tarefas ao mesmo tempo, sendo ideais pra lidar com DNNs. Mas tem um desafio: equilibrar dois fatores importantes-velocidade e eficiência. As empresas querem reduzir o tempo de resposta dos sistemas e ao mesmo tempo maximizar o número de solicitações que conseguem processar ao mesmo tempo sem desperdiçar recursos.

Duas Abordagens Principais: Batching e Multi-Tenancy

Pra melhorar o desempenho das DNNs rodando em GPUs, tem duas estratégias principais: batching e multi-tenancy. Cada uma dessas estratégias tem suas vantagens e desvantagens.

Batching

Batching envolve agrupar vários pedaços de dados e processá-los ao mesmo tempo. Em vez de analisar uma imagem ou um dado de cada vez, o sistema processa um lote inteiro. Esse método aproveita melhor as capacidades da GPU porque usa o tempo necessário pra carregar dados na memória e calcular os resultados.

Por exemplo, se um sistema precisa analisar imagens, em vez de mandar uma imagem por vez, ele manda várias imagens de uma vez. Isso reduz a sobrecarga causada por carregar repetidamente os mesmos parâmetros do modelo DNN da memória e permite um processamento mais rápido. Batching ajuda a reutilizar as mesmas partes do modelo para várias entradas, resultando em desempenho melhor.

Multi-Tenancy

Por outro lado, multi-tenancy se refere a rodar várias instâncias da mesma DNN em uma GPU ao mesmo tempo. Essa abordagem é útil quando uma única instância de uma DNN não consegue usar totalmente a GPU. Múltiplas instâncias podem compartilhar os recursos da GPU, permitindo que várias solicitações sejam processadas em paralelo.

Embora o multi-tenancy possa melhorar o throughput, também pode criar complicações. Rodar várias instâncias pode aumentar a latência, que é o atraso antes que uma solicitação seja atendida. Se não for gerenciado corretamente, os benefícios do multi-tenancy podem ser superados por efeitos negativos na velocidade.

O Papel do DNNScaler

Dadas as diferenças entre batching e multi-tenancy, pode ser complicado decidir qual abordagem usar para uma DNN específica. Fatores como o tipo de tarefa, o tamanho dos dados e as capacidades do sistema podem afetar qual estratégia vai garantir o melhor desempenho.

Pra resolver isso, uma solução chamada DNNScaler foi desenvolvida. O DNNScaler é feito pra maximizar o desempenho escolhendo a melhor abordagem entre batching e multi-tenancy com base na DNN específica sendo usada. Ele tem duas partes principais: o Profiler e o Scaler.

Profiler

O Profiler fica responsável por analisar a DNN e determinar se batching ou multi-tenancy seria mais eficaz. Ele mede o desempenho da DNN sob ambas as abordagens e identifica qual pode trazer melhores resultados. Essa avaliação é feita rapidamente, permitindo decisões em tempo real.

Assim que o Profiler termina sua análise, ele comunica os achados para o Scaler, que então toma uma ação com base nas decisões feitas.

Scaler

O Scaler pega a abordagem recomendada do Profiler e ajusta dinamicamente os parâmetros pra manter a latência baixa enquanto aumenta o throughput. Se batching for escolhido, ele muda o tamanho do lote de acordo com a carga de trabalho atual. Se multi-tenancy for a melhor opção, ele ajusta o número de instâncias rodando simultaneamente.

Monitorando continuamente o desempenho do sistema, o Scaler ajuda a garantir que o sistema responda rapidamente e ao mesmo tempo use os recursos da GPU de forma eficiente.

Resultados Experimentais

Pra ver como o DNNScaler funciona, vários experimentos foram realizados com diferentes tipos de DNNs e conjuntos de dados. Os resultados mostraram que o DNNScaler podia melhorar significativamente o desempenho em comparação com métodos existentes que focavam apenas em uma abordagem.

Em muitos cenários, o DNNScaler alcançou um aumento de até 14 vezes no throughput em comparação com métodos tradicionais. Os resultados variaram com base na arquitetura da DNN e no tipo de dado processado, mas no geral, o DNNScaler consistentemente superou outros métodos.

Impacto das Características dos Dados

Um aspecto interessante dos experimentos foi como as características dos dados afetaram o desempenho do batching e multi-tenancy. Algumas DNNs se saíram muito melhor com batching, enquanto outras tiveram resultados melhores com multi-tenancy.

Por exemplo, DNNs com muitos parâmetros e cálculos complexos se beneficiaram mais do batching. O motivo é que elas podem usar melhor os recursos da GPU ao processar várias entradas ao mesmo tempo. Em contraste, DNNs mais simples conseguiram tirar proveito do multi-tenancy, já que não conseguiam utilizar totalmente os recursos da GPU quando rodavam como uma única instância.

Latência e Eficiência Energética

A latência é um fator crítico para aplicações em tempo real. À medida que os sistemas são otimizados para velocidade, eles também devem garantir que atendem a requisitos específicos de latência. Durante os experimentos, foi observado que ambas as abordagens podiam ajudar a manter os níveis desejados de latência, mas elas devem ser cuidadosamente gerenciadas para evitar aumentos no tempo de resposta.

Além disso, o consumo de energia é uma consideração importante em implantações em larga escala. O DNNScaler não só melhorou o throughput, mas também aumentou a eficiência energética. Ele conseguiu um melhor throughput por watt em comparação com métodos tradicionais. Isso significa que ele pode oferecer alto desempenho sem aumentar excessivamente os custos de energia.

Adaptando-se a Mudanças

Uma das forças do DNNScaler é sua capacidade de se adaptar a mudanças na carga de trabalho e requisitos. Por exemplo, se o sistema experimentar um aumento repentino no número de solicitações ou se os requisitos de latência mudarem, o DNNScaler pode ajustar conforme necessário.

Nos experimentos, foi mostrado como o DNNScaler podia responder rapidamente a mudanças nos objetivos de nível de serviço (SLOs). Se um SLO for apertado, o DNNScaler pode reduzir o tamanho do lote ou o número de instâncias co-localizadas pra manter o desempenho requerido. Por outro lado, se um SLO se tornar mais relaxado, ele pode aumentar o tamanho do lote ou instâncias pra melhorar o throughput.

Essa adaptabilidade é essencial para serviços em tempo real, onde as condições podem mudar rapidamente.

O Futuro do Desempenho DNN

A pesquisa pra maximizar o desempenho de DNNs usando batching e multi-tenancy continua. Tem várias áreas pra explorar no futuro. Por exemplo, uma direção potencial envolve combinar batching e multi-tenancy pra benefícios de desempenho ainda maiores.

Embora as estratégias atuais tenham mostrado funcionar bem de forma independente, aplicar ambas as técnicas juntas pode trazer mais melhorias. Determinar as melhores instâncias onde combinar essas abordagens é vantajoso, com base nas características do modelo e dos dados, poderia ser uma área valiosa de pesquisa.

Além disso, mais otimizações do próprio DNNScaler poderiam ser exploradas. À medida que os sistemas de aprendizado de máquina continuam a evoluir, melhorias contínuas em como eles processam dados de forma eficiente vão ser cruciais.

Conclusão

Em conclusão, à medida que as aplicações de aprendizado de máquina crescem em complexidade e demanda, encontrar maneiras de maximizar o desempenho é mais importante do que nunca. Ao utilizar estratégias eficazes como batching e multi-tenancy, e ao implementar sistemas inteligentes como o DNNScaler, as empresas podem melhorar seus serviços em tempo real.

O DNNScaler mostra que é possível alcançar melhorias significativas em throughput e eficiência enquanto mantém a latência dentro dos limites necessários. À medida que a tecnologia continua a avançar, é empolgante pensar nas possibilidades futuras para ainda mais avanços no desempenho de inferência em deep learning.

Fonte original

Título: Throughput Maximization of DNN Inference: Batching or Multi-Tenancy?

Resumo: Deployment of real-time ML services on warehouse-scale infrastructures is on the increase. Therefore, decreasing latency and increasing throughput of deep neural network (DNN) inference applications that empower those services have attracted attention from both academia and industry. A common solution to address this challenge is leveraging hardware accelerators such as GPUs. To improve the inference throughput of DNNs deployed on GPU accelerators, two common approaches are employed: Batching and Multi-Tenancy. Our preliminary experiments show that the effect of these approaches on the throughput depends on the DNN architecture. Taking this observation into account, we design and implement DNNScaler which aims to maximize the throughput of interactive AI-powered services while meeting their latency requirements. DNNScaler first detects the suitable approach (Batching or Multi-Tenancy) that would be most beneficial for a DNN regarding throughput improvement. Then, it adjusts the control knob of the detected approach (batch size for Batching and number of co-located instances for Multi-Tenancy) to maintain the latency while increasing the throughput. Conducting an extensive set of experiments using well-known DNNs from a variety of domains, several popular datasets, and a cutting-edge GPU, the results indicate that DNNScaler can improve the throughput by up to 14x (218% on average) compared with the previously proposed approach, while meeting the latency requirements of the services.

Autores: Seyed Morteza Nabavinejad, Masoumeh Ebrahimi, Sherief Reda

Última atualização: 2023-08-26 00:00:00

Idioma: English

Fonte URL: https://arxiv.org/abs/2308.13803

Fonte PDF: https://arxiv.org/pdf/2308.13803

Licença: https://creativecommons.org/licenses/by/4.0/

Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.

Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.

Mais de autores

Artigos semelhantes