CUDA Academy · Aula

Proteção contra índices fora do intervalo

A verificação de limites if (i < n).

Aula 2 de 413 etapas

Proteção contra índices fora do intervalo é uma aula grátis de CUDA Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de CUDA Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de CUDA Academy inclui 4 aulas no total.

É comum iniciar threads demais

A quantidade de threads vem em tamanhos fixos de bloco, portanto quase sempre você inicia algumas threads extras além do comprimento da matriz. Essas sobras precisam ser tratadas.

O que dá errado

Uma thread extra calcula um índice além do fim da matriz. Se gravar nesse local, ela acessará uma memória que não lhe pertence, causando um erro silencioso fora dos limites.

A GPU não avisará você

Ao contrário de uma falha evidente, uma gravação fora dos limites pode corromper dados próximos ou ler lixo. O núcleo continua executando, portanto a falha fica invisível até os resultados parecerem incorretos.

A correção ocupa uma linha

Antes de qualquer thread usar seu índice, verifique se ele está dentro da matriz. Essa pequena verificação de limites é o hábito de segurança mais importante em CUDA.

if (i < n) {
    out[i] = a[i] + b[i];
}

Por que menor que, e não menor ou igual

Os índices válidos vão de 0 a n menos 1. O i < n estrito permite o último elemento real e impede o primeiro elemento inválido.

Threads ociosas simplesmente saem

Uma thread cujo índice esteja fora dos limites simplesmente ignora o trabalho e retorna. Não fazer nada é perfeitamente seguro e custa quase nenhum tempo.

Passe n ao núcleo

O núcleo não consegue adivinhar o comprimento da matriz, portanto você fornece n como um parâmetro. Assim, a proteção sempre sabe onde os dados terminam.

__global__ void add(float* a, float* b, float* out, int n) {
    int i = blockIdx.x * blockDim.x + threadIdx.x;
    if (i < n) out[i] = a[i] + b[i];
}

Proteja também as leituras

Não são apenas as gravações. Ler a[i] além do fim carrega lixo ou causa uma falha, portanto a mesma verificação i < n protege todo acesso.

Um erro comum de deslocamento em um

Escrever i <= n por engano permite que uma thread acesse o elemento n, que não existe. Mantenha sempre a comparação estrita.

Um seguro barato

O desvio custa quase nada porque as threads extras são raras e saem rapidamente. A segurança obtida vale muito mais do que esse pequeno custo. ✅

Torne isso um reflexo

Trate a verificação de limites como parte da própria fórmula do índice. Calcule i e imediatamente o proteja antes de fazer qualquer outra coisa.

Verificação rápida

Escolha a proteção correta.

Recapitulação

Você aprendeu a adicionar if (i < n) depois de calcular o índice. Essa única linha impede leituras e gravações fora dos limites que a GPU nunca avisaria que ocorreram. 🛡️

Grátis para começar

Aprenda C++ com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
30
Aulas
120

Perguntas Frequentes

A aula “Proteção contra índices fora do intervalo” é grátis?

Sim — o texto completo de “Proteção contra índices fora do intervalo” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de CUDA Academy, atualize para CoddyKit PRO. O curso de CUDA Academy inclui 4 aulas no total.

O que vou aprender em “Proteção contra índices fora do intervalo”?

A verificação de limites if (i < n). Você pratica CUDA Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar CUDA Academy?

Nenhuma experiência prévia é necessária. CUDA Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Proteção contra índices fora do intervalo”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de CUDA Academy?

Sim. Cada aula de CUDA Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. A fórmula clássica de índice
  2. Proteção contra índices fora do intervalo
  3. Arredonde o número de blocos para cima
  4. Laços com passo da grade
← Voltar para CUDA Academy