Acelerando Redes Neurais Gráficas com Tecnologia PIM
Um novo framework melhora o desempenho de GNN usando sistemas de Processamento em Memória.
― 7 min ler
Índice
Redes Neurais de Grafos (GNNs) são modelos avançados que ajudam a analisar dados organizados em formato de grafo, que é uma coleção de nós (ou pontos) conectados por arestas (ou links). Essas redes têm chamado atenção pela sua capacidade de realizar tarefas como classificar nós e prever conexões entre eles. Elas estão sendo usadas em várias áreas, incluindo análise de redes sociais, sistemas de recomendação e descoberta de medicamentos.
No entanto, rodar GNNs muitas vezes é desafiador porque exige um monte de poder computacional e largura de banda de memória. Essa execução envolve dois passos principais: Agregação, onde as entradas dos nós vizinhos são reunidas, e Combinação, que envolve processar essas entradas através de uma rede neural para produzir saídas para a próxima camada. O passo de agregação geralmente leva muito tempo porque é fortemente limitado pela velocidade de movimentação de dados entre a memória e os processadores.
Para resolver esse problema, sistemas de Processamento na Memória (PIM) foram propostos. Esses sistemas colocam processadores simples ao lado ou dentro de chips de memória para reduzir a quantidade de dados que precisa ser movimentada. Isso pode acelerar significativamente a execução de tarefas que exigem muita memória.
O Que São Sistemas PIM?
Os sistemas PIM permitem que a computação aconteça mais perto de onde os dados estão armazenados, visando reduzir o gargalo criado pelo movimento lento de dados entre processadores e memória. Em uma configuração típica de computador, os processadores ficam longe da memória, causando atrasos quando precisam buscar dados. Ao integrar capacidades de processamento na memória, os sistemas PIM podem aliviar esses atrasos.
Um exemplo notável de arquitetura PIM é a UPMEM. Este sistema combina chips de memória convencionais com unidades de processamento que podem operar nos dados armazenados nesses chips de memória. Como resultado, os sistemas PIM conseguem oferecer maior largura de banda de memória e eficiência.
Estrutura Proposta
A estrutura proposta, que vamos chamar de GNN-PIM, tem como objetivo rodar GNNs de forma eficiente em sistemas PIM reais. A estrutura implementa uma variedade de técnicas para melhorar o desempenho em duas áreas principais: execução de tarefas de agregação que consomem muita memória e tarefas de combinação. Também conta com uma interface de programação em Python (API) fácil de usar, tornando-a acessível para desenvolvedores.
Principais Características do GNN-PIM
Combinação de Aceleradores (CoA): Essa abordagem atribui diferentes tipos de tarefas ao hardware mais adequado. Por exemplo, as tarefas de agregação que consomem muita memória são executadas em sistemas PIM, enquanto as tarefas de combinação que exigem mais computação são realizadas em sistemas tradicionais de CPU ou GPU.
Paralelismo Híbrido (HP): Essa técnica permite múltiplos níveis de processamento paralelo. Inclui agrupar núcleos PIM em clusters e usar diferentes estratégias em cada nível para equilibrar a carga de trabalho de forma eficiente. Isso ajuda a minimizar a sobrecarga de transferência de dados enquanto maximiza a eficiência computacional.
Integração com frameworks de ML existentes: O GNN-PIM é projetado para trabalhar de forma integrada com bibliotecas populares de aprendizado de máquina, permitindo que os desenvolvedores adotem sistemas PIM facilmente para seus modelos de GNN.
Como Funciona o GNN-PIM?
O GNN-PIM separa o processo de execução em passos distintos, focando em tornar tanto as tarefas de agregação quanto as de combinação o mais eficientes possível.
Passo de Agregação
Durante o passo de agregação, cada nó reúne informações de seus nós vizinhos. Esse processo costuma ser intensivo em memória, e por isso, o GNN-PIM aproveita os sistemas PIM. A estrutura utiliza paralelismo híbrido, permitindo que múltiplos núcleos PIM trabalhem juntos para coletar dados.
A agregação envolve dividir os dados em partes menores, tornando mais fácil processá-las em diferentes núcleos PIM. Processando essas partes menores em paralelo, a estrutura otimiza o uso dos recursos disponíveis e reduz o tempo total necessário para esse passo.
Passo de Combinação
Depois da agregação, o passo de combinação assume, processando os dados agregados através de uma rede neural. Esse passo é mais intensivo em computação, e por isso é tratado por unidades de processamento tradicionais como CPUs ou GPUs.
Nesta fase, o GNN-PIM utiliza operações de aprendizado de máquina otimizadas para garantir que a computação seja eficiente. Os resultados do passo de combinação são então passados para a próxima camada na GNN, completando o ciclo.
Avaliação no Mundo Real
A eficácia da estrutura GNN-PIM foi validada através de testes no mundo real na arquitetura PIM da UPMEM. A estrutura foi avaliada usando vários modelos de GNN populares em diferentes conjuntos de dados.
Métricas de Desempenho
Tempo de Execução: A estrutura mostrou uma redução significativa no tempo de execução em comparação com métodos tradicionais que rodam apenas em CPUs ou GPUs. Em particular, o passo de agregação apresentou melhorias notáveis.
Escalabilidade: O design do GNN-PIM permite que ele escale de forma eficiente com o número de núcleos PIM disponíveis. Mesmo com o aumento do número de núcleos, o desempenho continua a melhorar, demonstrando a robustez da estrutura.
Utilização de Recursos: O GNN-PIM aproveita ao máximo os recursos de processamento disponíveis no sistema PIM. Essa alta utilização de recursos significa melhor custo-benefício em termos de desempenho por dólar gasto em hardware.
Implicações Práticas
A introdução do GNN-PIM oferece vários benefícios práticos para desenvolvedores e pesquisadores que trabalham com GNNs.
Desempenho Aprimorado
Ao aproveitar os sistemas PIM, o GNN-PIM pode lidar com tarefas complexas relacionadas a grafos de forma mais rápida e eficiente. Isso significa que aplicações que dependem de GNNs podem operar em tempo real ou quase em tempo real, abrindo possibilidades para novos casos de uso.
Adoção Facilmente
Com sua API amigável, o GNN-PIM permite que desenvolvedores incorporem hardware avançado sem precisar de muito conhecimento sobre sistemas PIM. Isso reduz as barreiras para o uso de tecnologia de ponta, incentivando uma implementação mais ampla.
Desenvolvimentos Futuros
À medida que a tecnologia PIM continua a evoluir, estruturas como o GNN-PIM provavelmente vão se adaptar e melhorar ainda mais. Pesquisas e desenvolvimentos contínuos ajudarão a identificar novas técnicas de otimização, garantindo que as GNNs possam se beneficiar dos últimos avanços em design de hardware.
Conclusão
O GNN-PIM se destaca como uma estrutura inovadora que acelera a execução de redes neurais de grafos em sistemas PIM reais. A separação distinta das tarefas de agregação e combinação, juntamente com abordagens inovadoras como paralelismo híbrido e a combinação de aceleradores, permite alcançar alto desempenho e eficiência.
Com a crescente importância das GNNs em várias áreas, a capacidade de processar eficientemente dados estruturados em grafo se tornará cada vez mais crítica. O GNN-PIM está bem posicionado para atender a essa demanda, oferecendo um caminho para pesquisadores e desenvolvedores que buscam aproveitar o poder das redes neurais de grafos.
À medida que a tecnologia PIM amadurece e se torna mais amplamente disponível, estruturas como o GNN-PIM provavelmente vão abrir caminho para novas aplicações e avanços em aprendizado de máquina e inteligência artificial.
Título: PyGim: An Efficient Graph Neural Network Library for Real Processing-In-Memory Architectures
Resumo: Graph Neural Networks (GNNs) are emerging ML models to analyze graph-structure data. Graph Neural Network (GNN) execution involves both compute-intensive and memory-intensive kernels, the latter dominates the total time, being significantly bottlenecked by data movement between memory and processors. Processing-In-Memory (PIM) systems can alleviate this data movement bottleneck by placing simple processors near or inside to memory arrays. In this work, we introduce PyGim, an efficient ML library that accelerates GNNs on real PIM systems. We propose intelligent parallelization techniques for memory-intensive kernels of GNNs tailored for real PIM systems, and develop handy Python API for them. We provide hybrid GNN execution, in which the compute-intensive and memory-intensive kernels are executed in processor-centric and memory-centric computing systems, respectively. We extensively evaluate PyGim on a real-world PIM system with 1992 PIM cores using emerging GNN models, and demonstrate that it outperforms its state-of-the-art CPU counterpart on Intel Xeon by on average 3.04x, and achieves higher resource utilization than CPU and GPU systems. Our work provides useful recommendations for software, system and hardware designers. PyGim is publicly available at https://github.com/CMU-SAFARI/PyGim.
Autores: Christina Giannoula, Peiming Yang, Ivan Fernandez, Jiacheng Yang, Sankeerth Durvasula, Yu Xin Li, Mohammad Sadrosadati, Juan Gomez Luna, Onur Mutlu, Gennady Pekhimenko
Última atualização: 2024-11-18 00:00:00
Idioma: English
Fonte URL: https://arxiv.org/abs/2402.16731
Fonte PDF: https://arxiv.org/pdf/2402.16731
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.