Как удалить процессы Python из памяти GPU? - PullRequest
0 голосов
/ 28 июня 2019

Я пытаюсь запустить функцию, но преждевременно ее отключаю.Я попытался использовать многопроцессорную библиотеку Python, чтобы создать процесс для функции, а затем завершить его.Я также пытаюсь использовать многопроцессорную библиотеку для уничтожения всех дочерних процессов.Мой код работает без отображения сообщений об ошибках.Тем не менее, даже после того, как программа полностью завершена (не только процесс, но и все остальное), память моего GPU исчерпана.Я не уверен, почему это происходит.Любая помощь будет принята с благодарностью.

Вот мой код:

class TrainingHelper:

    def __init__(self, filename = "nah.txt"):
        #filename is the name of the log file
        self.filename = filename

    def train(self):
        import reaver as rvr
        env = rvr.envs.SC2Env(map_name='FindAndDefeatZerglings')
        agent = rvr.agents.A2C(env.obs_spec(), env.act_spec(), 
        rvr.models.build_fully_conv, rvr.models.SC2MultiPolicy, 
        n_envs=4)
        agent.run(env)


    def run(self):
        import multiprocessing
        import time
        import sys
        p = multiprocessing.Process(target=self.train, name="Reaver", 
        args=())


        p.start()
        time.sleep(120)
        p.terminate()
        p.join()

        for prc in multiprocessing.active_children():
            prc.terminate()


        print("hello") #this works



if __name__ == "__main__":
    trainingHelper = TrainingHelper()
    trainingHelper.run()

Вот снимок экрана с запуском команды nvidia-smi

Here's a screenshot from running the command nvidia-smi

...