Как заставить несколько процессов Python использовать одну и ту же память для одного импортаPython

Программы на Python
Ответить
Anonymous
 Как заставить несколько процессов Python использовать одну и ту же память для одного импорта

Сообщение Anonymous »

Я использую версию PyTorch для ЦП, и мне нужно запустить с ее помощью несколько процессов. Однако всякий раз, когда я импортирую torch, потребляется большой объем памяти (примерно 200 МБ в версии PyTorch 2.4.0+cpu). Это проблематично, если я хочу создать большое количество процессов, запускающих PyTorch.
Как я могу избежать непроизводительной траты памяти, заставляя несколько процессов использовать один и тот же факел импорта или, альтернативно, как я могу узнать, что потребляет так много памяти при импорте факела?
Ниже приведен небольшой пример, который я использовал:
Ниже приведен небольшой пример, который я использовал: п>
import multiprocessing as mp
import resource

m1 = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss

import torch

m2 = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss
delta = m2 - m1
print(delta) # roughly 200 MB for torch==2.4.0+cpu

def f(x):
print(resource.getrusage(resource.RUSAGE_SELF).ru_maxrss) # roughly 134 MB
return x * x

if __name__ == "__main__":
mp.set_start_method("fork")
with mp.Pool(5) as p:
print(p.map(f, [1, 2, 3]))


Подробнее здесь: https://stackoverflow.com/questions/792 ... one-import
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»