FERRAMENTAS LINUX: O Driver Linux open source foi publicado para o processador AI "Goya" da Habana Labs

quarta-feira, 23 de janeiro de 2019

O Driver Linux open source foi publicado para o processador AI "Goya" da Habana Labs




Confira !



A Habana Labs é uma das empresas que trabalham em um processador "AI" para acelerar a inferência de aprendizado e o treinamento de cargas de trabalho. Seu produto inicial é o processador Goya, que já é qualificado para produção. Hoje, eles publicaram patches de driver de kernel do Linux de código-fonte aberto para revisão, a fim de incluir potencialmente no kernel da linha principal no futuro.

A start-up da Habana Labs publicou benchmarks de IA bastante convincentes que, para cargas de trabalho de inferência popular, colocam sua performance de Goya à frente da NVIDIA Tesla T4, da Intel Cascade Lake, da Xilinx Alveo e de outras plataformas concorrentes. Eles afirmam que este processador AI pode atingir 15.000 imagens por segundo no ResNet-50. O Goya HL1000 é suprido principalmente para cargas de inferência, enquanto que para treinamento eles também lançarão o Gaudi HL-2000, que deve começar a amostragem no próximo trimestre.


O processador AI consiste em vários núcleos de processamento tensor totalmente programáveis, cinco canais DMA separados, uma interface PCIe 4.0 x16 e até 16 GB de memória DDR4. Aqueles que querem aprender mais sobre o hardware de Goya podem visitar Habana.ai .

Surpreendentemente, esta noite é o primeiro driver de kernel do Habana Labs para Linux e suporte inicial para o processador Goya, enquanto eles pretendem estendê-lo para Gaudi nos próximos meses, uma vez que esteja disponível para os clientes. Um conjunto de 15 patches que compõem mais de 99.600 linhas de código (sendo muito arquivos de cabeçalho) é o que foi publicado hoje.

A mensagem de correção explica como o trabalho é transferido para este processador AI:

O driver atualmente expõe um total de cinco IOCTLs. Um IOCTL permite que o aplicativo envie cargas de trabalho para o dispositivo e outro para aguardar a conclusão das cargas de trabalho enviadas. Os outros três IOCTLs são usados ​​para gerenciamento de memória, criação de buffer de comando e recuperação de informações / status.  
Além disso, o driver expõe vários sensores por meio do subsistema hwmon e fornece várias informações no nível do sistema em sysfs para administradores de sistema.
O primeiro passo para um processo de aplicação é abrir o dispositivo hlX correto com o qual ele deseja trabalhar. As chamadas para abrir criam um novo "contexto" para essa aplicação nas estruturas internas do driver e um ASID exclusivo é atribuído a esse contexto. O objeto de contexto permanece até que o processo libere o descritor de arquivo E seus envios de comando tenham terminado de ser executados no dispositivo.  
O próximo passo é o aplicativo solicitar informações sobre o dispositivo, como a quantidade de memória DDR4. O aplicativo pode, então, criar buffers de comando para seus envios de comandos e alocar e mapear a memória do dispositivo ou do host (a memória do host só pode ser mapeada) para o subsistema MMU do dispositivo interno.  
Neste ponto, o aplicativo pode carregar várias topologias de aprendizado profundo na memória DDR do dispositivo. Depois disso, ele pode começar a enviar cargas de trabalho de inferência usando essas topologias. Para cada carga de trabalho, o aplicativo recebe um número de sequência que representa a carga de trabalho. O aplicativo pode, então, consultar o driver em relação ao status da carga de trabalho usando esse número de sequência.

Será uma grande tarefa obter o código revisado e mesclado ao kernel principal; É ótimo que a Habana Labs já tenha aberto esse código de driver Linux. Este esforço de driver de kernel do Linux está na verdade sendo liderado por Oded Gabbay, o antigo desenvolvedor e mantenedor do Red Hat do núcleo da AMDKFD. Então, dada a sua experiência e trabalho com a comunidade do kernel upstream, este driver "habanalabs" na verdade tem boas chances de eventualmente ver o kernel da linha principal.


Fonte

Até a próxima !!

Nenhum comentário:

Postar um comentário