как использовать два экземпляра aws ec2 (1 графический процессор и 1 процессор) с одним хранилищем для (запуска кода, хранения / обмена файлами) и снижения затрат - PullRequest
0 голосов
/ 26 декабря 2018

Моя команда использует экземпляр gpu для запуска приложений машинного обучения, основанных на тензорном потоке, yolo, а также для обучения моделям машинного обучения. Это стоит 7 долларов в час и имеет 8 графических процессоров.Пытался сократить расходы на это.Нам нужно 8 графических процессоров для более быстрой тренировки, и иногда многие люди могут использовать разные графические процессоры одновременно.

В нашем случае использования иногда мы вообще не используем графические процессоры (8 графических процессоров) в течение по крайней мере 1-2 недельмесяц.Но использование графического процессора может прийти в это время, но не может также.Итак, я хотел знать, есть ли способ отредактировать код и выполнять все интенсивные операции с процессором, когда gpu не требуется через недорогой экземпляр процессора.И включайте экземпляр gpu только при необходимости, используйте его, а затем остановите, когда работа будет завершена.

Я думал об использовании efs для помещения кода в общую файловую систему, а затем запуска оттуда, но я прочитал статью (https://www.jeffgeerling.com/blog/2018/getting-best-performance-out-amazon-efs), где написано, что я никогда не должен запускать код с сетевых дисковпотому что скорость может стать очень медленной.Так что я не знаю, хорошо ли запускать приложение машинного обучения из файловой системы efs.Я думал о создании виртуальных сред для папок в efs, но я не думаю, что это хорошая идея.

Может кто-нибудь предложить хорошие способы достижения этого и сократить расходы.И если вы предлагаете использовать экземпляр с меньшим количеством графических процессоров, который я рассмотрел, но иногда нам нужно 8 графических процессоров для более быстрого обучения, но мы вообще не используем этот процесс в течение 1-2 недель, но затраты все равно понесены.

Пожалуйста, предложите способ достижения низкой стоимости для этого варианта использования без использования спотовых или зарезервированных экземпляров.Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 29 декабря 2018

Чтобы уменьшить затраты на вывод, вы можете использовать Elastic Inference, который поддерживает функцию оплаты за использование:

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-inference.html

0 голосов
/ 26 декабря 2018

Несколько соображений:

  • Экземпляры GPU теперь допускают спящий режим, поэтому при запуске GPU выберите новое поведение Stop Instance «hibernate», которое позволит вам отключить его на 2 недели, но раскрутить егобыстро, если необходимо
  • Если у вас есть только один экземпляр, изучите возможность использования EBS для хранения данных с большим объемом подготовленных iops для быстрого перемещения данных в / из вашего экземпляра
  • В качестве альтернативы, переместите вашу модельSagemaker, чтобы убедиться, что вы платите за использование графического процессора только тогда, когда вы активно обучаете свою модель
  • Если вы применяете свою модель (вывод), перенесите эту рабочую нагрузку на дешевый экземпляр.Обученная модель yolo может выполнять вывод на очень маленьких экземплярах ЦП, при этом вообще не требуется графический процессор для этой части рабочей нагрузки.
...