Как использовать графические процессоры с Ray в Pytorch?Должен ли я указать num_gpus для удаленного класса? - PullRequest
0 голосов
/ 31 января 2019

Когда я использую Ray с pytorch, я не устанавливаю флаг num_gpus для удаленного класса.

Я получаю следующее ошибка :

RuntimeError: Attempting to deserialize object on a CUDA device but torch.cuda.is_available() is False. 

Основной процесс таков: я создаю удаленный класс и передаю ему модель pytorch state_dict()(created in main function).В основной функции torch.cuda.is_available() равен True, а в удаленной функции torch.cuda.is_available() равен False.Спасибо

Я пытаюсь установить num_gpus = 1 и получил новую проблему: программа просто застряла.Ниже приведен минимальный пример кода для воспроизведения этой проблемы.Спасибо.

import ray


@ray.remote(num_gpus=1)
class Worker(object):
    def __init__(self, args):
        self.args = args
        self.gen_frames = 0

    def set_gen_frames(self, value):
        self.gen_frames = value
        return self.gen_frames

    def get_gen_num(self):
        return self.gen_frames


class Parameters:
    def __init__(self):
        self.is_cuda = False;
        self.is_memory_cuda = True
        self.pop_size = 10


if __name__ == "__main__":
    ray.init()
    args = Parameters()
    workers = [Worker.remote(args) for _ in range(args.pop_size)]
    get_num_ids = [worker.get_gen_num.remote() for worker in workers]
    gen_nums = ray.get(get_num_ids)
    print(gen_nums)

1 Ответ

0 голосов
/ 31 января 2019

Если вы также хотите развернуть модель на графическом процессоре, вам нужно убедиться, что ваш актер или задача действительно имеет доступ к графическому процессору (с @ ray.remote (num_gpus = 1), это обеспечит этот факел.cuda.is_available () будет иметь значение true в этой удаленной функции).Если вы хотите развернуть модель на ЦП, вам необходимо указать, что при загрузке модели, см., Например, https://github.com/pytorch/pytorch/issues/9139.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...