Desempenho de deep learning nas GPUs T4 com as referências de desempenho MLPerf
Summary: Informações sobre a arquitetura Turing, que é a mais recente arquitetura de GPU da NVIDIA, após a arquitetura Volta, e a nova T4 é baseada na arquitetura Turing. ...
Symptoms
Cause
Resolution
Sumário:
Resumo
A arquitetura Turing é a mais recente arquitetura de GPU da NVIDIA após a arquitetura Volta e a nova T4 é baseada na arquitetura Turing. Ela foi projetada para computação com alto desempenho (HPC), treinamento e inferência de deep learning, aprendizado de máquina, análise de dados e recursos gráficos. Este blog analisará o desempenho do treinamento de deep learning de GPUs T4 no servidor Dell EMC PowerEdge R740 com o pacote de referência de desempenho MLPerf. O desempenho do MLPerf na T4 também será comparado ao V100-PCIe no mesmo servidor com o mesmo software.
Visão geral
O Dell EMC PowerEdge R740 é um servidor em rack 2U de dois soquetes. O sistema apresenta processadores Intel Skylake, até 24 DIMMs e até 3 GPUs de largura dupla V100-PCIe ou 4 GPUs T4 de largura única em slots x16 PCIe 3.0. A T4 é a GPU que usa a mais recente arquitetura Turing da NVIDIA. As diferenças de especificação da GPU T4 e da V100-PCIe estão listadas na Tabela 1. O MLPerf foi escolhido para avaliar o desempenho da T4 no treinamento de deep learning. O MLPerf é uma ferramenta comparativa que foi projetada por um grupo diversificado de acadêmicos e indústrias, incluindo Google, Baidu, Intel, AMD, Harvard, Stanford etc., para medir a velocidade e o desempenho do software e do hardware de aprendizado de máquina. A versão inicial lançada, v0.5, abrange implementações de modelos em diferentes domínios de aprendizado de máquina, incluindo classificação de imagem, detecção e segmentação de objetos, tradução automática e aprendizado por reforço. O resumo das referências de desempenho do MLPerf usadas para essa avaliação é mostrado na Tabela 2. A implementação do TensorFlow da ResNet-50 da apresentação do Google foi usada, e as implementações de todos os outros modelos da apresentação da NVIDIA foram usadas. Todas as referências de desempenho foram executadas em bare metal sem um contentor. A Tabela 3 lista o hardware e o software usados na avaliação. O desempenho da T4 com as referências de desempenho do MLPerf será comparado com o da V100-PCIe.
| Tesla V100 PCIe | Tesla T4 | |
|---|---|---|
| Arquitetura | Volta | Turing |
| Núcleos CUDA | 5120 | 2560 |
| Núcleos Tensor | 640 | 320 |
| Capacidade de computação | 7.0 | 7.5 |
| Clock de GPU | 1245 MHz | 585 MHz |
| Clock de boost | 1380 MHz | 1590 MHz |
| Tipo de memória | HBM2 | GDDR6 |
| Tamanho da memória | 16 GB/32 GB | 16 GB |
| Largura de banda | 900 GB/s | 320 GB/s |
| Amplitude do slot | Slot duplo | Slot único |
| Precisão única (FP32) | 14 TFLOPS | 8.1 TFLOPS |
| Precisão mista (FP16/FP32) | 112 TFLOPS | 65 TFLOPS |
| Precisão dupla (FP64) | 7 TFLOPS | 254.4 GFLOPS |
| TDP | 250 W | 70 W |
Tabela 1: A comparação entre a T4 e a V100-PCIe
| Classificação de imagem | Classificação do objeto | Segmentação da instância do objeto | Tradução (recorrente) | Tradução (não recorrente) | Recomendação | |
|---|---|---|---|---|---|---|
| Dados | ImageNet | COCO | COCO | WMT E-G | WMT E-G | MovieLens-20M |
| Tamanho dos dados | 144 GB | 20 GB | 20 GB | 37 GB | 1,3 GB | 306 MB |
| Modelo | ResNet-50 v1.5 | Detector de estágio único (SSD) | Mask-R-CNN | GNMT | Transformer | NCF |
| Estrutura | TensorFlow | PyTorch | PyTorch | PyTorch | PyTorch | PyTorch |
Tabela 2: As referências de desempenho do MLF usadas na avaliação
| Plataforma | PowerEdge R740 |
|---|---|
| CPU | 2x Intel Xeon Gold 6136 a 3,0 GHz (SkyLake) |
| Memória | DDR4 de 384 GB, a 2666 MHz |
| Armazenamento | Lustre de 782 TB |
| GPU | T4, V100-PCIe |
| SO e firmware | |
| Sistema operacional | Red Hat® Enterprise Linux® 7.5 x86_64 |
| Linux Kernal | 3.10.0-693.el7.x86_64 |
| BIOS | 1.6.12 |
| Relacionado com deep learning | |
| Compilador CUDA e driver de GPU | CUDA 10.0.130 (410.66) |
| CUDNN | 7.4.1 |
| NCCL | 2.3.7 |
| TensorFlow | nightly-gpu-dev20190130 |
| PyTorch | 1.0.0 |
| MLPerf | V0.5 |
Tabela 3: A configuração do hardware e os detalhes do software
Avaliação de desempenho
A Figura 1 mostra os resultados de desempenho do MLPerf na T4 e na V100-PCIe no servidor PowerEdge R740. Seis referências de desempenho do MLPerf estão incluídas. Para cada referência de desempenho, o treinamento de modelo completo foi realizado para atingir a precisão esperada do modelo definida pelo comitê do MLPerf. O tempo de treinamento em minutos foi registrado para cada referência de desempenho. As seguintes conclusões podem ser feitas com base nesses resultados:
-
Os modelos ResNet-50 v1.5, SSD e Mask-R-CNN apresentam bom dimensionamento com o aumento do número de GPUs. No ResNet-50 v1.5, a V100-PCIe é 3,6x mais rápida que a T4. No SSD, a V100-PCI é 3,3/3,4x mais rápida que a T4. No Mask-R-CNN, a V100-PCIe é 2,2x/2,7x mais rápida que a T4. Com o mesmo número de GPUs, cada modelo quase leva o mesmo número de épocas para convergir para a T4 e a V100-PCIe.
-
No modelo GNMT, a aceleração superlinear foi observada quando mais GPUs T4 foram usadas. Em comparação com uma T4, a aceleração é de 3,1x com duas T4 e 10,4x com quatro T4. Isso ocorre porque a convergência do modelo é impactada pela semente aleatória que é usada para a mistura dos dados de treinamento e a inicialização de pesos de rede neural. Não importa quantas GPUs são usadas, com diferentes sementes aleatórias, o modelo pode precisar de um número diferente de épocas para convergir. Neste experimento, o modelo levou 12, 7, 5, e 4 épocas para convergir com 1, 2, 3 e 4 T4 respetivamente. E o modelo levou 16, 12 e 9 épocas para convergir com 1, 2 e 3 V100-PCIe, respectivamente. Como o número de épocas é significativamente diferente, mesmo com o mesmo número de GPUs T4 e V100, o desempenho não pode ser comparado diretamente. Neste cenário, a métrica de throughput é uma comparação justa, pois não depende da semente aleatória. A Figura 2 mostra a comparação de throughput para a T4 e a V100-PCIe. Com o mesmo número de GPUs, a V100-PCIe é 2,5x/3,6x mais rápida que a T4.
-
O modelo NCF e o modelo Transformer têm o mesmo problema que o GNMT. No modelo NCF, o tamanho do conjunto de dados é pequeno e o modelo não leva muito tempo para convergir. Assim, esse problema não é percebido de forma óbvia nos resultados. O modelo Transformer tem o mesmo problema quando uma GPU é usada, pois o modelo levou 12 épocas para convergir com uma T4, mas levou apenas 8 épocas para convergir com uma PCIe V100. Quando duas ou mais GPUs são usadas, o modelo levou 4 épocas para convergir, independentemente do número de GPUs usadas ou do tipo de GPU usada. A V100-PCIe é 2,6x/2,8x mais rápida do que a T4 nesses casos.



Figura 1: Resultados do MLPerf na T4 e na V100-PCIe

Figura 2: A comparação de throughput para o modelo GNMT
Conclusões e trabalho futuro
Neste blog, avaliamos o desempenho de GPUs T4 no servidor Dell EMC PowerEdge R740 usando várias referências de desempenho do MLPerf. O desempenho da T4 foi comparado com a V100-PCIe usando o mesmo servidor e software. No geral, a V100-PCIe é 2,2x/3,6x mais rápida que a T4, dependendo das características de cada referência de desempenho. Observamos que alguns modelos são estáveis, independentemente dos valores de sementes aleatórias usados, mas outros modelos, incluindo GNMT, NCF e Transformer, são altamente afetados por sementes aleatórias. No futuro, ajustaremos os hiperparâmetros para que os modelos instáveis convirjam com menos épocas. Também executaremos o MLPerf em mais GPUs e mais nós para avaliar a escalabilidade desses modelos nos servidores PowerEdge.
*Isenção: Para fins de análises comparativas, foram avaliadas quatro GPUs T4 no Dell EMC PowerEdge R740. No momento, o PowerEdge R740 é oficialmente compatível com, no máximo, três T4 em slots PCIe x16.