CUDA and the rise of NVIDIA - editorial illustration

Jensen Huang, CUDA e a ascensão da NVIDIA

Introdução

Quando Jensen Huang cofundou a NVIDIA em 1993, o objetivo era levar os gráficos 3D aos jogos de computador e ao multimédia. Hoje, os processadores da mesma empresa são usados para treinar e executar modelos de inteligência artificial. Para entender essa mudança, é útil começar pela formação de engenharia de Huang e pela plataforma de software que a NVIDIA construiu, o CUDA. [1] [1]

1. A carreira de engenharia de Huang

Nascido em Taiwan, Huang obteve o bacharelado em engenharia elétrica pela Oregon State University em 1984. Trabalhou como projetista de microprocessadores na AMD de 1984 a 1985 e depois ocupou vários cargos na LSI Logic de 1985 a 1993. Tornou-se diretor da Coreware, a divisão responsável pela estratégia da empresa de integrar vários componentes de um sistema de computador num único chip. Nesse período, também obteve o mestrado em engenharia elétrica pela Universidade de Stanford em 1992. [2] [1]

Em 5 de abril de 1993, Huang fundou a NVIDIA com Chris Malachowsky e Curtis Priem. É presidente, diretor executivo e membro do conselho desde o início da empresa. Em 1999, a NVIDIA realizou a sua oferta pública inicial. Nesse mesmo ano, apresentou a GeForce 256, um marco na história das unidades de processamento gráfico (GPUs) da empresa. [1] [1]

2. O que é o CUDA?

A NVIDIA apresentou o CUDA em 2006 como uma plataforma de software e um modelo de programação para realizar muitos cálculos em paralelo nas suas GPUs. A GPU é o hardware que executa os cálculos. O CUDA fornece as ferramentas de programação que os programadores usam para executar os seus cálculos nesse hardware. Isto abriu as GPUs criadas para gráficos a aplicações de investigação científica, computação de alto desempenho e inteligência artificial. [1] [1]

Imagine clarear uma imagem com um milhão de píxeles. O cálculo de um píxel pode prosseguir independentemente dos outros. Um programa CUDA pode dividir esse trabalho em cálculos mais pequenos e executá-los na GPU. Uma função que corre na GPU chama-se kernel. Muitas threads executam-no em paralelo, cada uma a trabalhar na sua porção atribuída dos dados. O mesmo princípio de dividir o trabalho em partes que podem correr em paralelo aplica-se aos cálculos de IA, como as grandes multiplicações de matrizes. [3] [1]

3. Como o CUDA ajudou a indústria da IA

Ao treinar uma rede neural, o modelo faz primeiro uma previsão. O processo de treino mede o erro e atualiza os parâmetros do modelo. Repete este processo muitas vezes. As GPUs aceleram operações como a multiplicação de matrizes, dando aos investigadores tempo para realizar mais experiências e tornando prático treinar modelos maiores. As GPUs também são usadas após o treino, durante a inferência, quando um modelo como um modelo de linguagem gera uma resposta para um utilizador. [4] [1]

A AlexNet ofereceu uma demonstração prática em 2012. Treinada em GPUs da NVIDIA, venceu a competição de classificação de imagens ImageNet. O seu desempenho mostrou como os processadores gráficos usados para jogos de computador também podiam treinar modelos para reconhecer imagens. [1] [1]

4. Como o CUDA deu à NVIDIA uma vantagem duradoura

A NVIDIA construiu bibliotecas e ferramentas otimizadas para os cálculos de que os programadores precisam com frequência. O cuBLAS acelera operações com matrizes, o cuDNN suporta operações comuns de redes neurais, o NCCL trata da comunicação entre GPUs e o TensorRT ajuda os modelos treinados a correr mais depressa. Frameworks como o PyTorch suportam o CUDA, pelo que os programadores podem usar estas capacidades sem escrever cada operação de GPU do zero. [5] [1]

Conclusão

Esse ecossistema de software fortaleceu o negócio de hardware da NVIDIA. Uma equipa pode passar de uma pequena experiência para um sistema a correr em muitas GPUs, continuando a usar software e ferramentas familiares. Mudar de hardware pode exigir que a equipa reveja as suas dependências do CUDA, adapte partes do seu software e teste novamente o desempenho. Ao investir em software juntamente com o hardware durante anos, a NVIDIA tinha ferramentas prontas para os programadores que já sabiam usá-las quando a procura de computação de IA cresceu. [1] [1]

Referências

  1. https://www.nvidia.com/en-us/about-nvidia/corporate-timeline/
  2. https://s201.q4cdn.com/141608511/files/doc_financials/annual/2013/NVDA_2013AR_Proxy_10K-FINAL.pdf
  3. https://docs.nvidia.com/cuda/cuda-programming-guide/02-basics/writing-cuda-kernels.html
  4. https://docs.nvidia.com/cuda/cuda-programming-guide/index.html
  5. https://developer.nvidia.com/machine-learning

Perguntas sobre Jensen Huang, o CUDA e a ascensão da NVIDIA

O que é o CUDA e porque é que a NVIDIA o construiu?

O CUDA é uma plataforma de software e um modelo de programação que a NVIDIA introduziu em 2006 para executar muitos cálculos em paralelo nas suas GPUs. A GPU é o hardware; o CUDA fornece as ferramentas de programação, que abriram o hardware gráfico à investigação científica, à computação de alto desempenho e à IA.

Como é que o CUDA ajudou a indústria da IA?

Treinar uma rede neural significa repetir a previsão, a medição do erro e as atualizações de parâmetros muitas vezes. As GPUs aceleram operações como a multiplicação de matrizes, permitindo aos investigadores realizar mais experiências e treinar modelos maiores. A AlexNet, treinada em GPUs da NVIDIA, demonstrou isto ao vencer a competição ImageNet de 2012.

Porque é que o CUDA dá à NVIDIA uma vantagem duradoura?

A NVIDIA construiu bibliotecas otimizadas de que os programadores precisam frequentemente – cuBLAS para operações com matrizes, cuDNN para operações de redes neurais, NCCL para comunicação multi-GPU e TensorRT para uma inferência mais rápida – e frameworks como o PyTorch suportam o CUDA, pelo que as equipas podem escalar de uma pequena experiência para muitas GPUs sem reescrever o seu software.

Powered By K7