conceitos ESSENCIAIS para programar em GPU

Поделиться
HTML-код
  • Опубликовано: 13 сен 2024
  • Programar em GPU é totalmente diferente da programação tradicional em CPU, em qualquer área. Então temos alguns conceitos muito importante que temos que entender pra escrever apenas nosso "Hello World" em CUDA ou OpenCL (duas frameworks para programação em GPU), e nesse vídeo eu falo um pouco desses conceitos.
    REDES
    Site: www.wainejr.com/
    Instagram: / waine_jr
    TikTok: / waine_jr

Комментарии • 49

  • @rafaellira1478
    @rafaellira1478 4 месяца назад +19

    Que conteúdo bacana! O yt brasileira é meio carente de canais focados em assustos massivamente tecnicios e o seu é muito bom, então que venham mais videos técnicos, eles serão bem vindos.

    • @waine_jr
      @waine_jr  4 месяца назад +1

      Muito obrigado! Já gravei e quero lançar um sobre redução e essa parte bem teórica de computação, e to em mente uns mais práticos tmb, mostrando como programar em GPU com Python

  • @bbragatech
    @bbragatech 4 месяца назад +4

    Adorei o vídeo. Nunca tinha visto alguém falando sobre isso aqui no RUclips. Eu não codo mais, mas quando fiz faculdade a NVidia tinha acabado de lançar o CUDA e meu TCC foi criar uma biblioteca java para realizar cálculos na GPU utilizando estes nucleos(na época não existia nada que fizesse isso). No final um cálculo de matrizes que na CPU durava 3 dias para ser realizado, na GPU demorou 3 segundos. Bem impressionante as otimizações e paralelização que é possível fazer com isso... Parabéns pelo vídeo

    • @waine_jr
      @waine_jr  4 месяца назад +2

      Que massa que curtiu, e mt obrigado! Inclusive segunda sai vídeo justamente sobre isso, como a GPU faz multiplicação de matriz, o algoritmo e as otimizações

    • @98danielray
      @98danielray 3 месяца назад

      alguma coisa MUITO errada foi feita nessa comparação. que programa que tem speedup de 80000? ainda mais se for antigo.

    • @waine_jr
      @waine_jr  3 месяца назад +1

      ​@@98danielray kkkkkkkk isso daí não é incomum não, meu querido, um algoritmo errado ou diferente arquitetura pode chegar nesse nível. Convido a implementar um MatMul em C simples, outro em CUDA com o algoritmo "naive" e outro otimizado. Com eles multiplicar uma matriz de 1Gb e ver o tempo. Tem os códigos no artigo inclusive

  • @clifiel
    @clifiel 4 месяца назад +5

    Tem que manter isso aí viu.

    • @JLenival
      @JLenival 3 месяца назад +1

      Temos quer manter essa solicitação de manter isso aí rsrsr

  • @Giovani_Avelar_BR
    @Giovani_Avelar_BR 4 месяца назад +3

    Cara, esse tipo de assunto sobre GPUs é tão raro, eu já até comentei isso com um amigo certa vez, mais especificamente sobre emuladores, vamos pegar de exemplo emuladores mais complexos, como por exemplo o Redream de Dreamcast, o Play e PCSX2 de Play 2, o Dolphin de Game Cube, o RPCS3 de Play 3 e Xenia de Xbox 360, todos esses consoles utilizam gpus dedicadas, e até onde eu sei não se aprende sobre GPUs nos cursos de graduação, talvez em algum curso de pós graduação, daí eu fico pensando como é que esses desenvolvedores de emuladores conseguem trabalhar em um hardware com pouca ou nenhuma documentação ?

    • @waine_jr
      @waine_jr  4 месяца назад

      Sim, cara, é um assunto extremamente nichado mesmo dentro da graduação. Por exemplo, na UTFPR-CT, onde fiz graduação, não tem nenhuma matéria dedicada a essa parte de GPU e mesmo na UFPR que tem uns profs, a matéria costuma ser na parte de paralelização, cluster e daí puxa um pouco de GPU.
      É difícil achar profissional da área, mas acho que com esse boom de GPU nos últimos anos vamos ver um aumento de especialização no tema, e quem sabe mais professores nas universidades especialistas nisso também.

  • @Alexandreofbh
    @Alexandreofbh 2 месяца назад +1

    Waine, voce é massa demais! Adorei seu canal. Eu já programei muito para DSPs antigamente e hoje eu ate uso GPU porem uso as libs que tem tudo mastigado dentro. Parabéns e muito obrigado por compartilhar seu conhecimento.

    • @waine_jr
      @waine_jr  2 месяца назад +1

      Valeu, Alexandre! Muito massa ver o pessoal de baixo nível aqui no RUclips, nem tudo é React ou JavaScript hahahaha
      Nunca cheguei a programar em DSP, só GPU mesmo, e acho que a grande vantagem é isso que falou, as libs já dão tudo mastigado e otimizado. Inclusive é uma das grandes vantagens da Nvidia com CUDA pra outras stacks como OpenCL e ROCm da AMD

    • @Alexandreofbh
      @Alexandreofbh 2 месяца назад +1

      @@waine_jr Nossa Waine, voce ate me deixa sem jeito pois eu nunca consegui fazer o que voce fez, espalhar conhecimento. Sempre quiz porem sou meio retardado para poder explicar alguma coisa. Voce fez, parabéns meu caro, voce é uma pessoa diferenciada e gosta e entende realmente de tecnologia e do que faz. Eu tenho 56 anos e "quando crecer :)" queria ser como voce meu irmão! O ultimo projeto que fiz com "DSP" (meio DSP e meio uControlador) foi uma compressão de vídeo em 2003 usando o BF533 da Analog Devices, porem o H264 me fudeu rs rs rs.
      Adoro seu canal voce merece tudo de bom! Grande abraço
      Ah, mais uma coisa, é uma honra voce ter me respondido!

    • @waine_jr
      @waine_jr  2 месяца назад +1

      @@Alexandreofbh pra espalhar o conhecimento o jeito de aprender é tentando e errando no caminho. A gente precisa de mais pessoas como você falando da experiência e história na área de computação, aposto que tem mt a dizer! Inclusive quero começar a trazer pessoas pra conversar sobre tecnologia e histórias na computação que não são tão convencionais, pra mostrar que nem tudo é web e a visão de quem tava por aqui quando tudo era mato hahahaha se tiver interesse, me manda msg no Instagram, seria uma honra ouvir você contando dos seus projetos em DSP e embarcados, é uma área que curto demais e que sinto que não é tão "conhecida" nas redes

    • @Alexandreofbh
      @Alexandreofbh 2 месяца назад +1

      @@waine_jr Ô Waine, eu realmente sou muito vergonhoso e jacu para falar em video rs rs rs. Os videos que eu tenho foi só depois de muitos birinight. Agradeço muito, mas por enquanto vou mesmo só te assistir. Valeu meu brother.

    • @waine_jr
      @waine_jr  2 месяца назад +1

      @@Alexandreofbh hahahaha isso aí é prática, só falando msm pra perder a vergonha. De qualquer maneira, se algum dia mudar de ideia e quiser conversar, só me chamar no Instagram ou no Discord. Um abraço, meu querido

  • @ricardoaurion
    @ricardoaurion 5 месяцев назад +2

    Video bacana demais! Mais vídeos sobre isso ia ser muito bem vindo

    • @waine_jr
      @waine_jr  5 месяцев назад

      Com certeza vou fazer mais, Ricardo! Massa receber esse feedback que vcs gostaram desse formato

  • @LucasMatheus-zc5ns
    @LucasMatheus-zc5ns 5 месяцев назад +3

    Pô cara, bacana. muito didático, você pretendente continuar ou tornar uma série? acho que seria uma boa!! não sei se você já fez algum vídeo sobre, mas seria interessante algum vídeo sobre como funciona a relação das GPU's(a nível de programação mesmo) com os treinamentos de dados que serão usados por modelos de inteligência artificial

    • @waine_jr
      @waine_jr  5 месяцев назад +1

      Esse é o primeiro conteúdo que faço sobre GPU, uma boa fazer uma série mesmo, introduzindo cada um desses tópicos!

  • @ramonfbezerra4465
    @ramonfbezerra4465 4 месяца назад +1

    Já no aguardo para os próximos vídeos!!!

    • @waine_jr
      @waine_jr  4 месяца назад +1

      To editando o próximo já hahahah quero ver se consigo 2 por semanas

  • @SilasSWF
    @SilasSWF 4 месяца назад +1

    Muito bom mano. Com certeza quero mais vídeos.

    • @waine_jr
      @waine_jr  4 месяца назад

      Segunda sai um específico e com código em GPU, aposto que vai curtir

  • @ibrahimchipemamanuel3606
    @ibrahimchipemamanuel3606 5 месяцев назад +4

    Quais livros vc recomenda (em inglês ou português) para quem tá iniciando na área, já com conhecimento sobre algoritmos, estrutura de dados e arquitetura de computador, que julgo serem importantes para a área?

    • @waine_jr
      @waine_jr  5 месяцев назад

      Se você já tem uma base de algoritmos, estrutura e arquitetura, pode pular direto pra documentação do CUDA, é muito boa e ensina todos os conceitos necessários pra entrar nesse mundo (imagino que OpenCL também tenha algo semelhante, mas o da CUDA já li e sei que é mt boa).
      Pra quem não tem a base, pegar o Algoritmos do Cormen pra algoritmos e estrutura de dados, e Henessy & Patterson pra arquitetura (Uma abordagem quantitativa acho melhor que o outro).
      Além disso, vai da especialização na área, algoritmos específicos, implementações, padrões de design, etc. que é mt dependente de área e experiência.

    • @Nicolasm15inze
      @Nicolasm15inze 5 месяцев назад +1

      ​@@waine_jrTenho a quarta edição do Cormen, é um livro muito bom, vale a pena cada centavo investir nesse livro. Mesmo quem já tem base de algoritmos e arquitetura (faculdade ou não) vale a pena estudar por lá.

  • @OAdnanGonzaga
    @OAdnanGonzaga 4 месяца назад +2

    Video excelente, é algo que eu vejo muito pouco conteúdo no youtube no geral, mas aqui no brasil eu vejo menos ainda.
    18:22 até hoje eu to tentando não passar raiva.
    Tenho uma RX 480, e eu tentei fazer um raytracer utilizando o OpenCL no F#, e até hoje(comecei ano passado) não consegui entender direito o que ta acontecendo, mas eu começo alguma coisa, e vem um bug: Minha tela fica congelada em uma janela, o resultado da computação é uma tela preta, o programa trava e para de funcionar, ou simplesmente a GPU fica 10% e a minha CPU em 92%... Por enquanto deixei pra um momento que o trabalho e a faculdade não estiverem cobrando, pra resolver os problemas quando estiverem menores.

    • @waine_jr
      @waine_jr  4 месяца назад +1

      To tentando trazer esse tipo de conteúdo mais técnico pela falta dele aqui no Brasil mesmo, e fico feliz que tão curtindo
      Sobre GPU, segunda sai vídeo explicando como funciona multiplicação de matriz, e vai dar pra ver que mesmo no "Hello World" das GPUs as coisas não são tão simples kkkkk
      Pra quem tá começando acho que vale pegar exemplos e começar a trabalhar em cima deles, pq fazer do zero e acertar é mt mt difícil. A parte de renderização é super chata, lembro que em Computação gráfica eu não consegui fazer luminosidade funcionar e até hoje não entendo pq não funcionava kkkkkk

    • @sucessosim8961
      @sucessosim8961 2 месяца назад +1

      @@waine_jr waine, caí de paraquedas no seu video do processador e to curtindo seus videos. Se me permite, gostaria de conceder uma sugestão, tenta trazer uma série de videos ensinando como "codar" em gpu, "do zero a um desenho na tela" por exemplo. Eu não tive esse conhecimento em eng. de software e vendo um brasileiro que entende do assunto vejo como uma oportunidade kkkkk

    • @waine_jr
      @waine_jr  2 месяца назад +1

      @@sucessosim8961 Quero fazer isso sim! Mas acho que o formato de curso funciona melhor, mas ainda assim quero disponibilizar alguns vídeos e tópicos por aqui

  • @LucasAlves-bs7pf
    @LucasAlves-bs7pf 3 месяца назад +1

    Gostei demais!

  • @suaopniao5878
    @suaopniao5878 3 месяца назад +1

    Onde eu procuro emprego nessa area? Que tipo de empresa emprega programador com esse conhecimento? Eu queria muito trabalhar com cuda, opengl, c++… Mas parece que eu não teria como aplicar isso no mercado de trabalho

    • @waine_jr
      @waine_jr  3 месяца назад

      Tem menos vagas que web, mas com certeza tem. Provavelmente vão pedir graduação e pós, já que é uma área super especializada. Pode procurar no LinkedIn vagas de CUDA/OpenCL que vai ver as empresas e a qualificação que pedem. Além disso tem o meio acadêmico que tem bastante oportunidade pra desenvolver trabalhos desse tipo

  • @Nicolasm15inze
    @Nicolasm15inze 5 месяцев назад +2

    Estou buscando isso, estou com um projeto tentando masterizar ciência da dados e porque não começar aprender agentes inteligentes e LLM, sempre ficava confuso porque meus códigos em python só exploravam 100% da CPU, acredito que com suas dicas possa melhorar meus estudos , pois tenho aqui em mãos uma RTX 3050 e meus códigos nem faziam cócegas nela, só na CPU kkkkkkk
    Continua por favor, traz códigos pra gente tentar executar e exemplos práticos, vai ser interessante...

    • @waine_jr
      @waine_jr  5 месяцев назад +1

      Vou começar a trazer coisas mais práticas mesmo! Ainda mais com Python, tem bastante coisa que dá pra fazer com GPU nele

  • @edu.paixao
    @edu.paixao 4 месяца назад

    Muito bom. Vlw!

  • @masterdoxbox
    @masterdoxbox 4 месяца назад +1

    Seria bom trazer um pouco de código pra entender melhor como toda essa teoria se materializa

    • @waine_jr
      @waine_jr  4 месяца назад +1

      Vou trazer nos próximos vídeos!

  • @arozendojr
    @arozendojr 4 месяца назад +1

    Nosso queria uma coisa de mais leigo, 😅 queria saber como usar GPU em mais programas, no linux optimus meio que é possível abrir qualquer programa com aceleração de GPU, contudo ainda é meio obscuro o que optimus faz e gostaria de aprender mais, pois não jogo e gostaria de usar a GPU para mais atividades para deixar meu dia mais produtivo

    • @waine_jr
      @waine_jr  4 месяца назад +1

      Com relação a aceleração de aplicações, eu realmente não faço a mínima ideia como funciona kkkkkk é que dentro de GPUs você tem toda a parte de computação gráfica que é efetivamente desenhar na tela, e pra isso que as GPUs foram inventadas e usadas tradicionalmente
      Mas eu trabalho com a parte de uso de GPUs pra programas "gerais", que usam dos cores pra fazer continha. Inclusive antes as GPUs não tinham suporte pra esse tipo de uso, era só gráfico, aí o pessoal fazia várias gambiarras pra implementar as equações usando textura e tals (tenho que pegar algum programa dessa época pra mostrar).
      Então infelizmente não sei nem oq é esse optimus kkkkkkk só como fazer programa pra fazer continha em GPU

  • @Eng.pedroneto
    @Eng.pedroneto 4 месяца назад +1

    Uma pergunta "estúpida", uma não, duas:
    Qual ou quais as arquiteturas de GPU?
    GPU usa sistema operacional,.não usa ou "compartilha" com a CPU?

    • @waine_jr
      @waine_jr  4 месяца назад +2

      Nenhuma pergunta é esúpida, meu querido!
      A arquitetura que uma GPU segue é do SIMD, então ela executa uma instrução para vários conjuntos de dados. Com relação a ISA delas (conjunto de instruções), aí varia de fabricante pra fabricante, a da NVIDIA é o PTX por ex.
      Com relação ao sistema operacional e GPU, na verdade o SO que usa a GPU, não o contrário, então o SO vai enviar comandos pra GPU por meio dos drivers dela, além de dados da RAM do computador pra RAM da GPU pra que então ela processe eles e faça o que for pedido, seja renderizar, devolver os dados, etc. e todo esse processamento é feito interno na GPU (eu não sei como funciona o controle, mas deve ter uma espécie de "mini CPU" na GPU pra coordenar as operações).
      A gente chama de sistema heterogêneo pq são dois sistemas diferentes (CPU e GPU) um conversando com o outro, e quem faz essa ponte é o SO usando os drivers da GPU.
      É tudo bem complicado e confuso mesmo kkkkkk até hoje eu me perco quando paro pra pensar em quem faz o que e como tudo acontece.

    • @Eng.pedroneto
      @Eng.pedroneto 4 месяца назад

      @@waine_jr opa , boa tarde
      Eu entendi perfeitamente, você me respondeu a minha pergunta que faço a anos
      Era uma dúvida que eu realmente tinha mas agora está ok
      Um detalhe , em um SOC de 8 cores de CPU (no caso o sistema bigLITLE da ARM), também chamam de computação heterogênea sor por ter sistema assimétrico.
      No caso a GPU também fica integrada no mesmo SOC

  • @h_beserra
    @h_beserra 5 месяцев назад +1

    Existem alguns sistemas heterogêneos com mais de uma CPU, inclusive com cpu x86_64, trabalhando com CPUs arm por meio do PCIe
    ruclips.net/video/3ZBEgNB1-mk/видео.htmlsi=ncCcAp3gdqQ3NfeT

    • @waine_jr
      @waine_jr  5 месяцев назад

      Que interessante! Não conhecia esse tipo de coisa não, quando ouço sobre sistema heterogêneo sempre associo com coprocessador tipo GPU, DSP, FPGA, Asics, mas bom saber que o pessoal usa CPU-CPU também

  • @arozendojr
    @arozendojr 4 месяца назад

    Gostaria muito que meus programas pudesse usar pelo menos a memória RAM da GPU, fica 4GB parados, enquanto o Chrome, você já pode imaginar

  • @JoseSilva-wn3gr
    @JoseSilva-wn3gr 4 месяца назад +1

    se pintasse o cabelo de loiro ia ta de cosplay de fred do scooby doo, so que a versão nerd (com todo respeito)

    • @waine_jr
      @waine_jr  4 месяца назад

      kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk