Ir ao conteúdo
  • Cadastre-se

C++ Como usar threads Da igpu


InicianteOtaku

Posts recomendados

@InicianteOtaku Olá. Só um pequeno exemplo para ter uma ideia de como funciona. A função mudar_cor é executada por uma thread:

#include <stdio.h>
#include <pthread.h>
#include <unistd.h> // para a função sleep. No Windows é windows.h e Sleep

typedef enum {VERMELHO, VERDE} Cor;

Cor cor = VERMELHO;
  
void *mudar_cor(void *arg) {

    int i;

    for (i = 0; i < 10; i++) {

        cor = !cor;

        fprintf(stdout, "Cor atual: %s\n", cor ? "VERDE" : "VERMELHO");

        sleep(2);
    }
}

int main() {

    pthread_t thread;

    pthread_create(&thread, NULL, mudar_cor, NULL); // crio a thread e ela começa a executar

    pthread_join(thread, NULL); // aqui espero ela terminar a execução, ao término do for

    return 0;
}
  

Se é isso mesmo ok. Passei um pequeno exemplo em C, mas se o interesse é em C++ aí para mim inda não vai :)

Link para o comentário
Compartilhar em outros sites

Em 04/12/2019 às 11:44, InicianteOtaku disse:

Alguém tem ideia de como utilizar as threads de minha IGPU , pois vejo que os jogos utilizam ela e eu gostaria de utilizar para outros fins, se alguém souber me ajuda ai.

 

Cada fabricante tem um kit de desenvolvimento para criar aplicações desse tipo. E alguns pacotes para desenvolvimento de aplicações também incorporam isso no código.

 

Se você usa C ou C++ é bem imediato e não por acaso os jogos são escritos em geral nessas linguagens.

 

O mundo é bem pequeno no caso desses kits: a NVIDIA tem uma tecnologia, CUDA, a AMD tem outra, AOCC, a Intel outra.

E você pode usar OpenGL ou DirectX que acessam a GPU também. E na prática os pacotes de desenvolvimento de jogos também, como Unity e Unreal Engine

 

Muito disso é grátis porque há grande interesse dos fabricantes em que se use esse tipo de ferramenta

 

Veja um exemplo simples e comentado em C++ neste blog da NVIDIA por exemplo https://devblogs.nvidia.com/even-easier-introduction-cuda/

 

Aqui o software da NVIDIA: https://developer.nvidia.com/cuda-toolkit

 

E da AMD: https://developer.amd.com/tools-and-sdks/

 

E da Intel: https://software.intel.com/en-us/opencl-sdk

 

E do DirectX da Microsoft: https://support.microsoft.com/pt-br/help/179113/how-to-install-the-latest-version-of-directx

 

E do OpenGL: https://www.khronos.org/opengl/wiki/Getting_Started#Downloading_OpenGL

 

O exemplo #2 não é o que você quer. Threads rodam na CPU.

 

 

 

 

  • Curtir 1
  • Obrigado 2
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!