ScholarGate
Assistente

Arquitetura de GPU

Uma unidade de processamento gráfico (GPU) é um processador massivamente paralelo e orientado para o rendimento, construído a partir de muitos núcleos simples que executam milhares de threads para ocultar a latência da memória, originalmente para gráficos e agora amplamente utilizado para computação de propósito geral e aprendizado de máquina.

Encontrar tema com PaperMindEm breveFind papers & topics
Tools & resources
Baixar slides
Learn & explore
VídeoEm breve

Definition

Uma arquitetura de GPU é um design de processador altamente paralelo composto por muitos núcleos leves agrupados em multiprocessadores que executam um grande número de threads em grupos sincronizados, otimizados para alto rendimento aritmético e ocultação de latência, em vez de velocidade de thread único.

Scope

Este tópico abrange a organização do hardware da GPU: multiprocessadores de streaming, o modelo de execução de instrução única e múltiplos threads (SIMT), warps e blocos de threads, a hierarquia de memória de registradores, memória compartilhada e memória global, e como as GPUs ocultam a latência através de multithreading massivo. Ele trata as GPUs como arquitetura paralela. Exclui extensões SIMD da CPU (processadores SIMD e vetoriais) e os frameworks de software para programação de GPUs além das implicações arquitetônicas.

Core questions

  • Como as GPUs alcançam alto rendimento com muitos núcleos simples em vez de poucos complexos?
  • O que é o modelo de execução de instrução única e múltiplos threads e como os warps funcionam?
  • Como o multithreading massivo oculta a latência da memória?
  • Como a hierarquia de memória da GPU é organizada para cargas de trabalho paralelas?

Key concepts

  • multiprocessador de streaming
  • instrução única e múltiplos threads (SIMT)
  • warps e blocos de threads
  • multithreading massivo
  • ocultação de latência
  • memória compartilhada, global e de registradores
  • coalescência de memória
  • design orientado para o rendimento

Key theories

Ocultação de latência através de multithreading massivo
Em vez de minimizar a latência para um único thread, uma GPU mantém milhares de threads em execução e alterna entre grupos prontos sempre que alguns param na memória, de modo que o paralelismo abundante mantém as muitas unidades aritméticas ocupadas e oculta longos atrasos de memória.

Mechanisms

Uma GPU compreende muitos multiprocessadores de streaming, cada um executando grupos de threads (warps) em sincronia sob o modelo SIMT. Os threads são organizados em blocos que compartilham memória on-chip rápida e se sincronizam localmente. O hardware programa muitos warps e alterna entre eles com custo quase zero, de modo que, quando um warp espera pela memória, outro é executado, mantendo as unidades aritméticas ocupadas; padrões de acesso à memória coalescidos maximizam a utilização da largura de banda.

Clinical relevance

As GPUs tornaram-se centrais para a computação de alto desempenho e inteligência artificial: seu design orientado para o rendimento as torna a plataforma dominante para treinar e executar redes neurais profundas, bem como para simulação científica e análise de dados. Sua arquitetura recompensa algoritmos paralelos a dados e acesso à memória coalescido, moldando a forma como o software crítico para o desempenho é escrito.

History

As GPUs evoluíram de pipelines gráficos de função fixa na década de 1990 para shaders programáveis e, em seguida, para processadores multi-core totalmente programáveis. A introdução de frameworks de computação de GPU de propósito geral no final dos anos 2000 os abriu para cargas de trabalho científicas e de dados, e seu rendimento os tornou o motor da era do aprendizado profundo a partir da década de 2010.

Debates

Generalidade da GPU versus aceleradores especializados
As GPUs são motores de rendimento flexíveis, mas aceleradores cada vez mais especializados (como unidades de tensor e matriz) oferecem maior eficiência para cargas de trabalho específicas; os designers ponderam a programabilidade e a ampla aplicabilidade da GPU contra a eficiência do hardware dedicado.

Key figures

  • David B. Kirk
  • Wen-mei Hwu
  • John L. Hennessy
  • David A. Patterson

Related topics

Seminal works

  • hennessy2019
  • kirk2016

Frequently asked questions

Por que as GPUs são tão boas para o aprendizado profundo?
O treinamento e a execução de redes neurais consistem em grande parte em operações densas de matriz e tensor com abundante paralelismo de dados. Os muitos núcleos e a alta largura de banda de memória de uma GPU executam essas operações com um rendimento muito alto, superando em muito as CPUs de propósito geral em cargas de trabalho tão regulares e paralelas.
O que é um warp na execução da GPU?
Um warp é um grupo de threads (comumente 32) que executam a mesma instrução em sincronia sob o modelo SIMT. Agrupar threads em warps permite que o hardware amortize o controle de instrução em muitos elementos de dados, embora ramificações divergentes dentro de um warp reduzam a eficiência.

Methods for this concept

Related concepts