FERRAMENTAS LINUX: A AMD adiciona o Mecanismo RPC Básico à LLVM libc para as GPUs

quinta-feira, 23 de março de 2023

A AMD adiciona o Mecanismo RPC Básico à LLVM libc para as GPUs

A AMD fez o upstream de um mecanismo básico de RPC (chamada de procedimento remoto) para uso de GPU para o libc do LLVM e o conectou para uso de AMDGPU.


O engenheiro da AMD, Joseph Huber, contribuiu com essa implementação cliente-servidor RPC básica para a libc do LLVM para uso da GPU e, dado que seu foco está atualmente conectado ao back-end AMDGPU. Huber explicou no commit:

Este patch adiciona o suporte inicial para uma arquitetura cliente/servidor RPC. A GPU é incapaz de executar vários utilitários do sistema por conta própria, portanto, para implementar recursos como impressão ou alocação de memória, precisamos ser capazes de nos comunicar com o processo em execução. Isso é feito por meio de um buffer de memória "compartilhável". Ou seja, um buffer com um ponteiro unificado que tanto o cliente quanto o servidor podem usar para se comunicar.

A implementação aqui é baseada no exemplo mínimo de RPC de Jon Chesterfield em seu trabalho. Usamos uma `caixa de entrada` e `caixa de saída` para comunicar se há uma solicitação RPC e para indicar quando o trabalho está concluído. Usamos um buffer de tamanho fixo para o canal de comunicação. Este é um tamanho fixo para que possamos garantir que haja espaço suficiente para todas as unidades de computação na GPU emitirem trabalho para qualquer uma das portas. No momento, a implementação é de thread único, portanto, há apenas um único buffer que não é compartilhado.

Esta implementação ainda tem vários recursos faltando para ser concluída. Como suporte multiencadeado e chamadas assíncronas.

Essa implementação inicial de GPU RPC chegou por meio desse commit .

Outros trabalhos pendentes em torno do back-end AMDGPU para upstream LLVM podem ser encontrados por meio desta consulta LLVM Phabricator .






Fonte

Até a próxima !!


Nenhum comentário:

Postar um comentário