Será M.2 NVMe ou gráficos gráficos lentos e discretos

2

Estou prestes a criar uma máquina Linux para o Deep Learning. Partes relevantes:

  • ASRock Z270 KILLER SLI / AC
  • Core i7 7700
  • 2x GTX 1060
  • 1 TB M.2 Evo 850 NVMe SSD

O Deep Learning envolve a execução de algoritmos baseados em CUDA por dias a fio na GPU e o piping de muitos dados entre GPU / CPU / SSD. Gargalos irão somar.

Estou preocupado com as PCIe Lanes. Pelo que entendi, a CPU tem apenas 16. Pelo que entendi, 8x pistas é suficiente para GPU, mas 4x pode ver algum abrandamento. (Eu originalmente preocupado com NVMe SSD levaria lanes mas parece CPU tem 4 pistas IO extras)

É melhor usar os gráficos integrados para Desktop UI, para deixar as 2 GPUs para computação, ou os gráficos integrados criarão um gargalo (ou seja, forçar 8x 4x 4x, vs 8x 8x pistas para GPU) para as GPUs (o que significa que talvez eu deva desativar integrado e compartilhar 1 GPU com a interface de usuário do desktop).

Meu objetivo é obter o máximo desempenho das GPUs. Se houver gargalos, quero saber se ele pode causar mais de 5% de diferença de desempenho, o que é 8hrs multiplicado por uma semana de uso da GPU

    
por AwokeKnowing 28.06.2017 / 21:54

1 resposta

1

TLDR:

Will M.2 NVMe or integrated graphics slow discrete graphics cards

Neste caso específico, provavelmente não.


Deep Learning involves running CUDA based algorithms for days on end on the GPU, and piping a lot of data back and forth between GPU/CPU/SSD. Bottlenecks will add up.

Eu não tenho experiência em CUDA, mas pelo que me lembro de ler em artigos, a principal questão com fazer cálculos em uma GPU não é usualmente a velocidade de transferência bruta. Em vez disso, é latência.

Cuidado com o 'normalmente'. Para qualquer programa específico, as coisas podem ser bem diferentes.

A latência está parcialmente em questão de velocidades PCI-e. As conexões PCI-e v3 podem rodar a taxas mais altas do que as pistas PCI-e v2 (8GHz vs 5GHz). Então você quer seus cartões com GPUs nas pistas v3.

Olhando ark.intel.com, mostra que o Core i7 7700 tem 16 pistas PCI-e vindas diretamente da CPU. (Mais pode vir do chipset).

As pistas PCI-e conectadas diretamente à CPU são PCI-e v3 e podem ser usadas como 1x16, 2x8, 1x8 + 2x4. Eu estou supondo que, para fazer CUDA com duas placas gráficas discretas, você quer usar dois slots, ambos usando 8 pistas.

So I'm concerned about PCIe Lanes. As I understand, the CPU only has 16.

Correto.

From what I understand, 8x lanes is plenty for GPU but 4x can see some slowdown.

Ordenar, sim. Na maioria das vezes, a velocidade do barramento PCI0-e excedeu as placas gráficas necessárias. Isso muda com o tempo. As GPUs ficam mais rápidas. High-end começar a empurrar a largura de banda máxima. Versões PCI-e são atualizadas ...

Normalmente, uma placa gráfica de topo tem o suficiente com cerca de 8 pistas. O hardware Toms fez testes na era PCI-e v2 e eu acho que os resultados são válidos para configurações modernas com placas gráficas modernas no PCI-e v3:

x16: velocidade máxima.
 x8: algumas% de perda de velocidade (digamos 2-5%)
 x4: Ainda está funcionando bem para a maioria das coisas. Apenas não coloque uma placa GPU dual high end em um slot x4 e execute um display de 4k com todas as configurações de jogos maximizadas.

(I originally worried NVMe SSD would take lanes but seems CPU has 4 extra IO lanes)

Não tem. Chips atuais do consumidor da Intel, muito poucas faixas PCI-e. Não mais do que a maioria das necessidades do público-alvo. Essa é uma decisão econômica sensata.

Sua linha Xeon tem CPU com mais pistas PCI-e. Assim como alguns dos novos chips AMD (64 pistas PCI-e na CPU ThreadRipper da AMD. Duas vezes isso em produtos de servidor)

Em vez de sua placa-mãe tem o chipset Z270 que fornece pistas PCI-e adicionais.

O chipset suporta estas configurações x1, x2, x4.

Com um máximo de x4, parece que 2x8 da CPU ainda é a melhor aposta para CUDA.

Muitas das faixas restantes são usadas pela placa-mãe para SATA, USB, rede, etc. Quatro delas estão disponíveis para os usuários finais através de 4 slots de expansão PCIe 3.0 x1. Não coloque as placas gráficas nelas!

Quanto ao NVME: As placas possuem dois slots PCIe Gen3 x4 Ultra M.2. O http://asrock.nl/downloadsite/Manual/Z270%20Killer%20SLIac.pdf">manual para este fórum menciona:

* If M2_1 is occupied by a SATA-type M.2 device, SATA_5 will be disabled.  
* If M2_2 is occupied by a SATA-type M.2 device, SATA_0 will be disabled.

Eu não criei nada do usual 'Se M.2 for usado com um dispositivo NVME, então ...', o que significa que provavelmente tem faixas dedicadas do chipset.

Do I leave the 2 GPUs for compute, or will the integrated graphics create a bottleneck (ie force 8x 4x 4x, vs 8x 8x lanes for GPU) for the GPUs (meaning maybe I should disable integrated and share 1 GPU with desktop UI).

Não vejo nenhum motivo pelo qual os gráficos integrados devam afunilar você. Não suspeito de problemas, você o desativa. Basta ter uma máquina fazendo cálculos até mesmo sem gráficos (apenas SSH).

Ter duas placas gráficas dedicadas a cálculos e gráficos integrados para o resto (por exemplo, uma tela simples) parece-me mais claro. Mas isso não é algo que possa quantificar.

My goal is to get max performance from GPUs. If there are bottlenecks, I want to know if it can cause more than 5% performance difference, which is 8hrs multiplied over a week of GPU usage

O melhor conselho é medir o que seu sistema está fazendo. Se possível, passou uma semana com ele no modo de teste. Execute-o com as duas cartas em x8. A medida. Use o software para fazer o downgrade das pistas PCI-e para x4. Verifique quanto desempenho é perdido. Se isso for menor que 1%, tente com uma carta a x16 e uma carta em um slot x1. Eu estou supondo que 2 * x8 será muito melhor, mas eu posso estar errado.

Faça coisas semelhantes com outras configurações. Por exemplo. tente correr sem hipertrear. (HT on é geralmente 30% -ish mais rápido, mas, ocasionalmente, ele realmente desacelera as coisas, então teste.) Tente desativar a economia de energia. etc etc.

Depois de alguns dias de testes com alguns testes diferentes, execute a produção.

    
por 01.07.2017 / 22:18