Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

cuda.core: a fast-path VMM grow leaves its extension unfreeable

Aberta
#2,887 1 comentário 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
48/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
python
Domínio
hpc

Direção de pesquisa

Comece em _grow_allocation_fast_path e rastreie como Buffer, close() e deallocate(ptr, size) gerenciam reservas, mapeamentos e memória física. Revise o teste existente do fast path e adicione cobertura que detecte que a reserva de extensão continua alocada após close; a tarefa estará concluída quando toda reserva e todo mapeamento pertencentes ao buffer forem liberados.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

bug cuda.core

Summary

_grow_allocation_fast_path maps a new chunk into a second, adjacent VA reservation and updates buf._size in place. The Buffer's deleter captured the original size when the buffer was created, so close() calls deallocate(ptr, original_size) and frees only the first reservation. The extension's reservation, mapping, and physical memory leak with no warning.

No deallocate(ptr, size) call can fix this: cuMemAddressFree frees a reservation only when ptr and size match exactly one reservation, so a range that spans two reservations cannot be freed in one call. The buffer needs to own each reservation and mapping it consists of.

Status

Today the fast path is unreachable (#2388 defect 2). #2237 and #2407 make it live and would expose this leak, so they should wait for this fix. The existing fast-path test mocks the driver and cannot catch it.

Refs: #2388, #2237, #2407, #2882.

Linguagem predominante
Cython
Estrelas
3.4k
Forks
329
Merge médio
1d 20h
PRs com merge (30d)
123

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de NVIDIA/cuda-python

Todas as issues de NVIDIA/cuda-python

Issues semelhantes

Mais issues de HPC

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.