Magna Concursos
4142175 Ano: 2025
Disciplina: TI - Desenvolvimento de Sistemas
Banca: ITA
Orgão: ITA
Provas:

Na programação paralela com aceleradores, como em CUDA, é preciso considerar os espaços de endereçamento acessíveis pelo código executando em CPU e pelo código executado em GPU.

 

// código 1:

int N = 1<<20;
float *x, *y, *d_x, *d_y;

 

x = (float*)malloc(N*sizeof(float));
y = (float*)malloc(N*sizeof(float));

 

cudaMalloc(&d_x, N*sizeof(float));
cudaMalloc(&d_y, N*sizeof(float));

 

// inicia elementos dos vetores x e y
cudaMemcpy(d_x, x, N*sizeof(float), cudaMemcpyHostToDevice);
cudaMemcpy(d_y, y, N*sizeof(float), cudaMemcpyHostToDevice);

 

// invoca kernel para manipulação de x e y
kern <<< ..., ... >>> (N, d_x, d_y);

 

cudaMemcpy(y, d_y, N*sizeof(float), cudaMemcpyDeviceToHost);

 

// código 2:

 

int N = 1<<20;
float *x, *y;

 

cudaMallocManaged(&x, N*sizeof(float));
cudaMallocManaged(&y, N*sizeof(float));

 

// inicia elementos dos vetores x e y
...

 

// invoca kernel para manipulação de x e y
kern <<< ..., ... >>> (N, x, y);

 

cudaDeviceSynchronize();

 

Observe os 2 trechos de código apresentados anteriormente e indique a alternativa INCORRETA (próxima página):

 

Provas

Questão presente nas seguintes provas

Tecnologista - TL-05

25 Questões