Итак, если вы решились — нужно строить свой город-сад.
Давайте посмотрим, что нам нужно:
- Датасеты где-то должны лежать. Нужна возможность хранить и иметь быстрый доступ к большим объемам данных.
- Видеокарта. Resnet-ы и Unet-ы ждут.
- Многоядерный процессор. Многие забывают, но многие операции в numpy, pandas, да и алгоритмы градиентного бустинга отлично распараллелены для multithreading, но все еще не работают на видеокартах.
- Оперативная память. Должна вмещать все.
- И остальное, что должно обслуживать параметры: достаточный источник питания, корпус и материнская плата, где все это счастье поместится, операционная система.
Самый главный определяющий фактор, конечно, бюджет. Свой я определил в районе 150 тыс. рублей.
Итак, первое и самое дорогое — это видеокарта. Давайте признаем очевидное: Nvidia является сейчас абсолютным лидером по производительности и совместимости фреймворков, и если вы пишете нейросети, то вам нужно cudnn и cuda. Но хорошие видеокарты стоят круглые суммы: если мы хотим хотя бы 11 Gb памяти и соответствующую производительность, надо выложить 1000 $+ за топовую модель. Видеокарты разлетаются, а цены растут. Как быть? Надо вспомнить, что прямо сейчас мы живем в уникальное время: пузырь криптовалют лопается по швам, и на рынок выходит большое количество видеокарт от майнеров. Я являюсь счастливым обладателем подержанной 1080 Ti за 30 тыс. рублей, и почти за год она ни разу меня не подвела, работая 24/7. Возьмите компьютер с Windows (почему-то большинство программ тестирования видеокарт именно под эту систему), запаситесь программами, проверьте вашу рабочую лошадку вдоль и поперек и смело берите графический ускоритель в 1.5-2 раза дешевле.
Продолжая идею вычислителей, перейдем к процессору. Тут хотелось бы сказать, по аналогии с предыдущим, что абсолютный лидер — Intel (тем более, я там когда-то работал). Это верно… только если мы говорим про однопоточные приложения или неограниченный бюджет. Однако, у нас ни тот, ни другой случай, а хочется параллелить и денежку оставить, тут к нам приходит AMD Ryzen в целом и их линейка Threadripper в частности. За 700-1000$ можно купить 24-32 ядерный кристалл, на котором Catboost будет летать, аналогичные параметры Intel стоят в два раза дороже. Конечно, есть большое “НО”: своей производительности Threadripper обязан специфической конструкции, и с этим придется считаться (об этом ниже)…

Еще один инсайт от сборщика, а точнее, обещанные подробности о Threadripper: «В целом, если в вас сидит мантра «все каналы памяти должны быть заполнены» (а у Threadripper их 4) можете скроллить вниз. Остальным напоминаю, что у этого процессора старой архитектуры интересная структура из 4 NUMA nodes, узлов с неоднородным доступом к памяти. Работать они могут и с одним каналом, но тогда у вас будут копиться задержки, вызванные этой архитектурой. В более новых Threadripper, построенных уже на ZEN 2, эта особенность ликвидирована, но пожелание компьютеру многих каналов памяти остается».
Итак, мы вывели ограничение материнской платы на количество слотов под память, хотя бы 4 (чтобы получить 32 гигабайта), а желательно — 8. Еще стоит сразу подумать, собираетесь ли вы брать вторую видеокарту, и, конечно, посмотреть на производителя. Тут мы выясняем, что предложений на рынке для PC (не серверных), подходящих под наши ограничения, не так много (по крайней мере, было немного, когда эта машина собиралась). Конечно, на ум приходит ASUS, и при неограниченном бюджете взял бы его, но пытаясь влезть в рамки, берем ASRock, младшего брата большой компании, доступного даже после падения рубля.
Конечно, имея такой быстрый вычислитель, странно упираться в скорость жесткого диска, значит нам нужен SSD. Они, конечно, дороже, однако выясняется, что мало какие задачи требуют терабайтов данных в постоянном доступе. Значит, можно взять 512 Гб, а датасеты, которые пока не хочется удалять, держать вместе с коллекцией домашних фильмов — на отдельном классическом терабайтном диске. Или больше. Сколько нужно и что позволит бюджет.
Собрав основные компоненты, прикидываем, что может дать хозяйству мощность. Тут подумайте о развитии и, например, о второй видеокарте (лучше взять с запасом). И, конечно, надо решить, кто охладит эту мощь. Threadripper-ы греются, как цветочные цены на 8 марта, так что нужна мощная система охлаждения. Формально подойдет сильная воздушная и водяная, но я советую брать водяную: по цене сравнима с сильной воздушной, но не будет постоянного ощущения, что живете на взлетно-посадочной полосе. Плюс, за последнее время количество производителей, предлагающих вменяемые охладители специально для Threadripper, выросло — есть из чего выбрать.

- Заказать собрать кому-то внешнему
- плюсы: могут еще раз проверить комплектацию, нет проблем с совместимостью
- минус: ~10-15% стоимости в зависимости от сложности работы и стоимости комплектующих
- Выписать всё на листочек, прийти на Савеловский/Горбушку (если живете в Москве) и собрать там.
- плюсы: точно ничто не побьется при доставке, все сделают при вас, меньше денег за сборку
- минусы: могут быть не самые дешевые компоненты (даже в рамках одного рынка цена прыгает до 50%, плюс за эту цену могу попробовать поставить Б/У)
- Заказать все на Яндекс-маркете
- плюсы: можно дешевый вариант
- минусы: сложно проверить доставку
- Заказать всё за границей (алиэкспресс/ebay)
- плюсы: самый дешевый вариант, сюрприз по приезду
- минус: сюрприз по приезду (серьезно, не надо так – в Спортлото чаще выигрывают)
Я сам выбрал первый вариант (в личке могу порекомендовать конкретных людей).
Когда все приехало и собрано, осталось накатить систему.
Это история для отдельного поста, здесь расскажу вкратце: поскольку я хотел его еще использовать как десктоп и имел предыдущий опыт работы в Linux, то по причине популярности выбрал Ubuntu Linux.
Когда все работает, попросите у своего провайдера статический IP — это бесплатно или недорого и обеспечит доступ к вашим юпитер-ноутбукам почти отовсюду.
Напоследок скажу, что высказал свое мнение, которое сложилось в результате изучения рынка и общения со специалистами. В бюджет я уложился, и почти год чудо современных технологий бесперебойно работает. Через некоторое время поставил jupyterhub и стал пускать друзей, так и живем нашей небольшой коммуной на сервере, да сетки обучаем, чего и вам желаю.

Наименование | Цена в рублях | Ссылка |
---|---|---|
Корпус COUGAR Panzer MAX Black | 9200 | https://market.yandex.ru/product--kompiuternyi-korpus-cougar-panzer-max-black/1712295303/offers?priceto=10000&local-offers-first=1&deliveryincluded=1&how=aprice |
Материнская плата ASRock X399 Taichi | 27200 | https://market.yandex.ru/product--materinskaia-plata-asrock-x399-taichi/1730976015/offers?local-offers-first=1&how=aprice&deliveryincluded=1 |
Процессор AMD Ryzen Threadripper 1920X (sTR4, L3 32768Kb) | 31150 | https://market.yandex.ru/product--protsessor-amd-ryzen-threadripper-1920x-str4-l3-32768kb/1732027853/offers?onstock=1&local-offers-first=1&how=aprice&deliveryincluded=1 |
Оперативная память 32Gb (4x8Gb) 3200MHz DDR4 DIMM Corsair | 23100 | https://market.yandex.ru/product--operativnaia-pamiat-corsair-cmk32gx4m4d3200c16/1729035586/offers?local-offers-first=1&deliveryincluded=1&how=aprice Потом еще купил столько же |
Блок питания Chieftec BDF-1000C 1000W | 7330 | https://market.yandex.ru/product--blok-pitaniia-chieftec-bdf-1000c-1000w/1731273730/offers?priceto=9000&local-offers-first=1&deliveryincluded=1&how=aprice |
SSD Samsung M.2 970 EVO 500 Gb (R3500/W2500MB/s) | 9960 | https://market.yandex.ru/product--tverdotelnyi-nakopitel-samsung-mz-v7e500bw/41265856/offers?local-offers-first=1&how=aprice&deliveryincluded=1 |
Видеокарта GeForce GTX 1080Ti поюзанная | 31000 | |
СЖО Deepcool Castle 280 RGB | 9500 | https://market.yandex.ru/product--kuler-dlia-protsessora-deepcool-castle-280-rgb/163585623/offers?local-offers-first=1&how=aprice&deliveryincluded=1 |
Паста TG Kryonaut | 1600 | https://key.ru/shop/devices/termopasta/termopasta_thermal_grizzly_kryonaut1/ |
Вентиляторы Noctua и Gelid 140mm для водоблока | 2000 | |
Покупка, Сборка, настройка, установка ОС | 13000 | Советую человека, который собирал, но контакты по запросу |
Итого: | 165040 | |
Итого за части | 152040 |