Proteção contra índices fora do intervalo
A verificação de limites if (i < n).
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.
Partes desta aula ainda não foram traduzidas e aparecem em inglês.
You Often Launch Too Many
Thread counts come in fixed block sizes, so you almost always launch a few extra threads beyond your array length. Those spares need handling.
What Goes Wrong
An extra thread computes an index past the end of the array. If it writes there, it touches memory it does not own, causing a silent out-of-bounds bug.
The GPU Will Not Warn You
Unlike a clean crash, an out-of-range write may corrupt nearby data or read garbage. The kernel keeps running, so the failure is invisible until results look wrong.
The Fix Is One Line
Before any thread uses its index, check that it falls inside the array. This tiny bounds check is the most important safety habit in CUDA.
if (i < n) {
out[i] = a[i] + b[i];
}Why Less Than, Not Less Or Equal
Valid indices run 0 to n minus 1. The strict i < n lets the last real element through and stops the first invalid one.
Idle Threads Just Exit
A thread whose index is out of range simply skips the work and returns. Doing nothing is perfectly safe and costs almost no time.
Pass n to the Kernel
The kernel cannot guess the array length, so you give it n as a parameter. Then the guard always knows where the data ends.
__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];
}Guard Reads Too
It is not only writes. Reading a[i] past the end loads garbage or faults, so the same i < n check protects every access.
A Common Off-by-One
Writing i <= n by mistake lets one thread touch element n, which does not exist. Always keep the comparison strict.
Cheap Insurance
The branch costs almost nothing because extra threads are rare and exit fast. The safety it buys is worth far more than that tiny cost. ✅
Make It a Reflex
Treat the bounds check as part of the index formula itself. Compute i, then immediately guard it before doing anything else.
Quick Check
Pick the correct guard.
Recap
You learned to add if (i < n) after computing the index. This one line stops out-of-range reads and writes that the GPU would never warn you about. 🛡️
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
- A fórmula clássica de índice
- Proteção contra índices fora do intervalo
- Arredonde o número de blocos para cima
- Laços com passo da grade