Pular para o conteúdo principal

Questão de Sistemas Operacionais — Threads — CESPE / CEBRASPE 2025

Sistemas OperacionaisThreads
Código
ce217177
Banca
CESPE / CEBRASPE
Órgão
TJ-PA
Ano
2025
Nível
Superior
Cargo
Analista Judiciário - Especialidade: Análise de Suporte
A respeito dos fundamentos de GPU para ambientes de alto desempenho e das aplicações práticas da CUDA, julgue o item a seguir.Em CUDA, a execução paralela é estruturada em threads, que formam blocks, os quais, por sua vez, compõem grids, podendo diferentes blocks dentro de um mesmo grid compartilhar automaticamente sua memória local e seus registradores.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Fundamentos de GPU e CUDA – Hierarquia de Execução

Gabarito: E (Errado). Em CUDA, blocks diferentes dentro de um mesmo grid não compartilham automaticamente sua memória local e registradores. Cada thread possui seus próprios registradores e memória local (privados), e blocks são executados independentemente, sem comunicação automática entre si. Apenas threads dentro de um mesmo block podem compartilhar memória via shared memory e sincronizar entre si.

Hierarquia da execução paralela em CUDA

A execução é organizada em três níveis:

  • Grid: conjunto de blocks que executam o mesmo kernel.

  • Block: conjunto de threads que podem cooperar via memória compartilhada e sincronização.

  • Thread: unidade básica de execução, com registradores e memória local privados.

O erro da afirmação

A afirmação diz que "diferentes blocks dentro de um mesmo grid podem compartilhar automaticamente sua memória local e seus registradores". Isso é falso porque:

  • Memória local e registradores são privados por thread – não podem ser acessados por outras threads, mesmo dentro do mesmo block.

  • Memória compartilhada (shared memory) é acessível a todas as threads de um mesmo block, mas não a blocks diferentes.

  • Blocks diferentes são independentes: executam em qualquer ordem e não podem se comunicar diretamente. Para comunicação entre blocks, é necessário usar memória global ou operações atômicas, o que não é automático.

NÃO CAIA NESSA!

A banca tenta induzir o candidato a confundir o compartilhamento dentro de um block (via memória compartilhada) com um suposto compartilhamento entre blocks. Lembre-se: blocks são unidades independentes; a cooperação entre threads só ocorre no nível do block.

PEGA ESSA DICA!

Na prova, lembre-se da regra de ouro: thread ↔ memória local e registradores (privados); block ↔ memória compartilhada e sincronização; grid ↔ independência entre blocks. A comunicação entre blocks requer mecanismos explícitos (memória global + barreira implícita no final do kernel, ou operações atômicas).

Conclusão: A afirmação é falsa porque blocks não compartilham automaticamente memória local nem registradores. Apenas threads dentro de um mesmo block podem compartilhar memória compartilhada, e mesmo assim não automaticamente – depende de código explícito.

Gabarito: E (Errado).

Link permanente: /questoes/ce217177