Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

443
Visualizações
Comprender el uso de la memoria por parte de PyTorch DataLoader Workers

Al ejecutar un programa de capacitación de PyTorch con num_workers=32 para DataLoader , htop muestra 33 procesos de python, cada uno con 32 GB de VIRT y 15 GB de RES .

¿Significa esto que el entrenamiento de PyTorch usa 33 procesos X 15 GB = 495 GB de memoria? htop muestra solo alrededor de 50 GB de RAM y 20 GB de intercambio se utilizan en toda la máquina con 128 GB de RAM. Entonces, ¿cómo explicamos la discrepancia?

¿Existe una forma más precisa de calcular la cantidad total de RAM utilizada por el programa PyTorch principal y todos sus procesos de trabajo secundarios de DataLoader?

Gracias

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Hay una función de python llamada tracemalloc que se usa para rastrear bloques de memoria asignados a python. https://docs.python.org/3/library/tracemalloc.html

  • Rastreos
  • Estática en la memoria por nombre de archivo
  • Calcule la diferencia entre instantáneas
 import tracemalloc tracemalloc.start() do_someting_that_consumes_ram_and releases_some() # show how much RAM the above code allocated and the peak usage current, peak = tracemalloc.get_traced_memory() print(f"{current:0.2f}, {peak:0.2f}") tracemalloc.stop()

https://discuss.pytorch.org/t/measuring-peak-memory-usage-tracemalloc-for-pytorch/34067

over 4 years ago · Santiago Trujillo Relatório

0

¿Significa esto que el entrenamiento de PyTorch usa 33 procesos X 15 GB = 495 GB de memoria?

No es necesario. Tiene un proceso de trabajo (con varios subprocesos - trabajadores) y la CPU tiene varios núcleos. Un trabajador suele cargar un lote. El siguiente lote ya puede estar cargado y listo para cuando el proceso principal esté listo para otro lote. Este es el secreto de la aceleración.

Supongo que deberías usar mucho menos num_workers.

También sería interesante conocer el tamaño de su lote, que también puede adaptar para el proceso de capacitación.

¿Existe una forma más precisa de calcular la cantidad total de RAM utilizada por el programa PyTorch principal y todos sus procesos de trabajo secundarios de DataLoader?

Busqué en Google pero no pude encontrar una fórmula concreta. Creo que es una estimación aproximada de cuántos núcleos tiene su CPU, memoria y tamaño de lote.

Elegir num_workers depende del tipo de computadora que esté utilizando, el tipo de conjunto de datos que esté tomando y la cantidad de preprocesamiento sobre la marcha que requieran sus datos.

HTH

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda