![Por que a IA não consegue protegê-lo contra ataques gerados por IA](https://optimuscloud.com.br/wp-content/uploads/2024/03/1711658645_Por-que-a-IA-nao-consegue-protege-lo-contra-ataques-gerados-150x150.jpg)
Por que a IA não consegue protegê-lo contra ataques gerados por IA
28 de março de 2024![Novo assistente de importação Proxmox para migração de VMs VMware ESXi](https://optimuscloud.com.br/wp-content/uploads/2024/03/1711677607_Novo-assistente-de-importacao-Proxmox-para-migracao-de-VMs-VMware-150x150.png)
Novo assistente de importação Proxmox para migração de VMs VMware ESXi
28 de março de 2024A NVIDIA está buscando expandir o suporte para mais linguagens de programação enquanto tenta atrair mais desenvolvedores para escrever aplicativos para suas GPUs.
A estrutura de programação CUDA da empresa atualmente oferece suporte a linguagens que incluem C++, Fortran e Python. Mas novas linguagens de programação estão evoluindo e a empresa está interessada em abrir o acesso às suas GPUs para desenvolvedores que usam essas linguagens, disse Jeff Larkin, arquiteto de HPC da NVIDIA, durante uma sessão técnica na GPU Technology Conference da empresa no início deste mês.
Larkin não forneceu detalhes sobre quais linguagens de programação estava analisando.
“Minha equipe está definitivamente monitorando isso e tentando procurar oportunidades para se envolver nisso. Mas (C++, Fortran e Python) são aqueles que são especificamente suportados em nossos produtos hoje. Existem algumas tecnologias que conheço, e não posso mencionar aqui, que também permitirão mais idiomas”, disse Larkin.
Larkin deu alguns exemplos de como algumas linguagens de programação já exploram suas GPUs, nomeadas abandonando Judia e Rust.
Por que mudar para GPUs?
![](https://optimuscloud.com.br/wp-content/uploads/2024/03/1711662243_721_NVIDIA-quer-mais-linguagens-de-programacao-para-suportar-CUDA.png)
CEO e cofundador da NVIDIA, Jensen Huang, falando no GTC 2024.
Os primeiros modelos de programação giravam em torno de CPUs. A arquitetura x86 foi o grande problema, enquanto as GPUs foram relegadas a jogos e gráficos.
Avançando rapidamente, a IA se tornou uma realidade com as GPUs. A NVIDIA argumenta que as CPUs não são eficientes no tratamento de transações de IA, enquanto as GPUs – que consomem mais energia – proporcionarão mais economia de custos.
“Normalmente, embora uma GPU use mais energia, ela a usa de forma mais produtiva, e é aí que você começará a ver a economia”, disse Larkin. “Você operará com mais rapidez e eficiência energética.”
A NVIDIA está acoplando fortemente sua própria CPU baseada em ARM, chamada Grace Hopper, junto com GPUs. Mas os desenvolvedores precisam do CUDA para aproveitar ao máximo as GPUs.
Como funciona o CUDA
No coração das GPUs da NVIDIA estão os Tensor Cores, que é a tecnologia mais importante que impulsiona a maior parte da computação de IA atualmente. Os Tensor Cores são capazes de matemática de baixa precisão e multiplicação de matrizes para computação de IA.
O estilo matricial de computação é baseado no algoritmo GEMM, que aproveita os Tensor Cores e é central para o modelo de computação de IA da NVIDIA. O algoritmo GEMM funciona com bibliotecas em CUDA para que os programadores interajam com os núcleos da GPU.
As bibliotecas incluem:
- cuBLAS: Esta é a biblioteca preferida da NVIDIA que fornece acesso direto aos Tensor Cores e oferece desempenho máximo. “Esse é o seu carro-chefe básico que existe desde o início do CUDA. São APIs de álgebra linear”, disse Stephen Jones, arquiteto CUDA, durante uma apresentação no GTC. cuBLAS oferece a maneira mais fácil de aproveitar o desempenho das GPUs. Ele automatiza a configuração dos Tensor Cores e os desenvolvedores não precisam girar botões – o cuBLAS funciona imediatamente.
- CUTELO: A biblioteca CUTLASS de nível inferior fornece interfaces C++ e Python para codificadores trabalharem com os Tensor Cores da GPU. Os desenvolvedores controlam o uso de Tensor Cores, o que significa mais trabalho para os desenvolvedores. O CUTLASS difere do cuBLAS, que automatiza esse processo. A NVIDIA está construindo mais ferramentas para desenvolvedores Python acessarem o CUTLASS, que é um desenvolvimento recente e um trabalho em andamento. “Você pode usar a extensão PyTorch e, assim, emitir o código PyTorch do CUTLASS e pode trazer automaticamente os kernels personalizados da extensão CUTLASS Tensor Core em Python para o PyTorch”, disse Jones.
- cuBLASLT: Esta biblioteca fica em algum lugar entre as bibliotecas cuBLAS e CUTLASS e fornece vários níveis de controle para Tensor Cores. “CUTLASS na verdade chama aquele do meio de cuBLASLt, que você também pode acessar. É uma biblioteca pública. Ele oferece APIs avançadas onde você pode realmente controlar muito mais aspectos do que os Tensor Cores estão fazendo”, disse Jones. O cuBLASLt possui APIs avançadas para bibliotecas GEMM, o que abre as portas para a computação de precisão mista, que envolve computação mista e de baixa precisão.
- cuBLASDx: Isso pode executar funções de álgebra linear selecionadas do cuBLAS no lado do dispositivo, o que melhora o desempenho e o rendimento. “A ideia é obter seus núcleos cuBLAS, ativá-los em seu kernel apenas com um único núcleo GEMM, como você faria com cuBLAS de uma CPU”, disse Jones.
Python é uma prioridade
A NVIDIA está buscando expandir o acesso aos seus SDKs e estruturas para Python, o que fornece acessibilidade a mais desenvolvedores. Isso, por sua vez, trará mais desenvolvedores para suas GPUs.
“Olhando para a pilha Python, você tem que investir em todos os lugares, em toda a sua extensão”, disse Jones.
A NVIDIA quer tornar o Python “uma experiência completa da Nvidia e tornar o desenvolvedor Python e todo o ecossistema CUDA disponíveis e acessíveis ao programador Python”, disse Jones.
O objetivo é disponibilizar mais SDKs, estruturas e linguagens específicas de domínio no topo da pilha para mais desenvolvedores. Ao mesmo tempo, tornando as camadas inferiores – bibliotecas aceleradas, bibliotecas e utilitários do sistema e kernels de dispositivos – invisíveis para os usuários. Ainda é um trabalho em andamento, disse Jones.
A NVIDIA tem trabalhado na integração de suas bibliotecas e ferramentas com estruturas Python populares, como PyTorch.
“A compilação JIT é extremamente importante em Python porque Python é uma linguagem muito interpretada em tempo de execução e você está constantemente gerando dados de forma dinâmica. Um compilador em loop é completamente normal. Na verdade, o interpretador Python é basicamente um deles”, disse Jones.
Programe bem, colha recompensas
Programar – e fazê-lo corretamente – é importante para tornar a IA mais eficiente em termos de energia.
As empresas estão medindo o custo por transação e tentando reduzi-lo. A IA tem um problema de criptografia – é preciso muita energia para funcionar – e o custo da inferência foi examinado no GTC.
Jones argumentou que as GPUs são mais eficientes na equação final: elas podem fornecer mais FLOPS (operações de ponto flutuante por segundo) ao levar em consideração o espaço do rack, o tempo e o consumo de energia.
“Ninguém se importa com quantos servidores você está comprando, ninguém se importa com quantos data centers você está alugando, você está alugando energia por mês, porque a energia é a métrica que realmente importa para a computação”, disse Jones.
A NVIDIA introduziu novos tipos de dados – FP4 e FP6 – que são de menor precisão, mas podem extrair mais desempenho por watt.
A empresa apresentou uma nova GPU com o codinome Blackwell no GTC. Um novo servidor chamado DGX-B200 possui oito chips Blackwell e consome cerca de 1.000 watts. Ela sucede à GPU H100, que é a GPU que impulsiona os esforços de computação de IA na Microsoft, Meta, Tesla e outras empresas.
Comparado ao DGX-H100, o consumo de energia do sistema DGX-B200 é semelhante, mas o desempenho melhora duas a três vezes, disse Charlie Boyle, vice-presidente e gerente geral de sistemas DGX da NVIDIA, em entrevista.
Sem atualizações para CUDA
O modelo de hardware e software da NVIDIA é muito parecido com o da Apple: hardware e software andam de mãos dadas. O software é projetado para o hardware e vice-versa.
A NVIDIA está tentando prender os desenvolvedores ao CUDA, que é um modelo de desenvolvimento proprietário. Com certeza, as GPUs NVIDIA suportam outros modelos de programação, como o Triton da OpenAI, e modelos de desenvolvimento de código aberto.
O objetivo da empresa é integrar o hardware e o software na chamada “fábrica de IA”, onde a entrada são dados brutos e a saída é o resultado. O hardware e o software permanecem invisíveis para os clientes.
Normalmente, a NVIDIA lança uma nova versão do CUDA com uma nova GPU. No entanto, Jones não forneceu atualizações significativas ao CUDA durante a sessão do GTC. A NVIDIA lançou recentemente a versão 12.4 do CUDA e pode compartilhar mais detalhes ainda este mês, à medida que o lançamento de sua GPU Blackwell se aproxima.
O posto NVIDIA quer mais linguagens de programação para oferecer suporte a CUDA apareceu pela primeira vez em The New Stack.