Pull to refresh
-4
Karma
0
Rating
Stas Tukalo @StasTukalo

DS

Как в oneFactor ускорили безопасное обучение ML-алгоритмов в 19 раз с помощью Intel Xeon Gen3 и SGX 2.0

Здравствуйте.
Имею два вопроса:
1. Почему обучение ведется на цпу а не на гпу? Если можно поподробнее пожалуйста.

2.
используются датасеты большого размера и те данные, которые не помешаются в EPC анклава, хранятся в RAM в зашифрованном виде и для доступа к этим данным используется очень затратная операция EPC swapping

Мне одному кажется что это какойто лютый мазохизм? Это требование регулятора? Зачем это? От кого скрываются датасеты?

Заранее признателен за развернутые ответы.

ML глазами практикующего трейдера

Можно привести тут три-пять монографий гениальных авторов по прогнозированию нестационарных временных рядов вообще и курсов ценных бумаг в частности? Буду крайне признателен.

ML глазами практикующего трейдера

МЛ — это достаточно тупая штука и все эти производные от цены (тоесть фичи) ей надо подсовывать уже готовенькие… весь мл- это процесс высасывания [незаурядных] фич из окружающей действительности… о чем собственно автор и говорит.

ML глазами практикующего трейдера

Приветствую, коллега!
Спасибо за текст. Всегда приятно узнать что не ты один грызешь этот гранит и есть еще одиночки, которые думают что этот гранит можно не только отгрызть, но еще прожевать, проглотить и переварить))
Успехов, коллега!

Собираем Свой Суперкомпьютер Недорого

Да, совершенно верно. Мелкодисперсную пыль остановить сложно и дорого, но у нас не «чистое помещение» для науки, у нас колхозная серверная. Обычной москитной сетки достаточно чтобы задержать самые неприятные вещи- собственно насекомых, тополиный пух и прочие штуки с деревьев и капли косого дождя.

Собираем Свой Суперкомпьютер Недорого

Так все считается. Напишите, например, Игорю Тарасову (itsoft, habr.com/ru/company/itsoft, тут можно как-то упомянуть хабровчанина чтобы он это увидел? былобы здорово), владельцу нескольких стоек в разных дата-центрах, включая NORD в Мск, спросите сколько будет стоить. Само место в стойке недорогое, но вот в купе с электричеством подозреваю что будет дорого.
Но в целом я подразумевал ситуацию с небольшой фирмой или подразделением, которое занимается ML и которой нужны некоторые вычислительные мощности. Как правило, в такой фирме уже есть в наличии какая-то серверная комната или угол со стойкой- то есть зачатки инфраструктуры есть.
Фильтрация воздуха- ненужна. Замените ее ежемесячным продуванием оборудования небольшим компрессором. Стабилизация питания- на 100тр вложенных денег вы получаете 16квт безопасного электричества и устройство, которое в любой момент уйдет на авито за 90.
Понятно, что это колхоз. Но лучшие решения- это те, которые решают, а не те, которые красиво блестят. Имхо)

Собираем Свой Суперкомпьютер Недорого

Да, такой. Но нужно пробовать его. Мне в руки попадал один подобный экземпляр — китайцы много чего заманчивого выкладывают на али. Завести не удалось. Плюс тут нужно понимать как работает pci-e-мультиплексор на матери — например на некоторых бытовых матерях, где есть два х16 разъема, при обнаружении подключения к первому на второй дается только 8 линий. Причем логика этого процесса у разных производителей разная. Поэтому конечный вывод можно сделать только при непосредственном тестировании железки.

Собираем Свой Суперкомпьютер Недорого

Уже писал, но добавлю еще тут, так как здесь это более уместно, не сочтите за спам:
Считается что 25-30% карта потребляет с матери через pci-e разъем. Именно поэтому сильножрущие карты могут сжечь мать (для 5х3090 это составит в районе 500+ ватт или 40 ампер по 12вольтовой линии) — горит разъем питания на матери или дорожки от него. Выглядит примерно так:
image

Но райзеров с поддержкой питания больше чем x1 я не встречал.

Также еще важное по райзерам: существуют райзеры с тремя разными разъемами питания- считается, что лучше те, которые под такойже разъем как доп питание видеокарты- незнаю как он правильно называется. Худшим считается разъем как на сата хдд. молекс- посерединке. Разъем питания на райзере- также является одной из точек возгорания. Учитывая низкокачественность как самих райзеров, так и этих разъемов- это точка повышенного внимания.

Собираем Свой Суперкомпьютер Недорого

По охладу я уже думал. Текщие решения такие:
image
и
image

Но я думаю пойти дальше- содрать внешний пластик, оголить радиатор и приделать на него два вентилятора из днс по 250 рублей. На старых 1070 с умирающими вентиляторами такая схема работает годами.

Но на последней фотке мы видим что человек поставил еще обдув на память первого гпу. Видимо есть проблемы с этим. Возможно нужно делать бекплейт с задувом под него.

Собираем Свой Суперкомпьютер Недорого

Для себя я заначил вот это видео — там строят на дешевых компонентах 10гбпс. Возможно Вам пригодится: youtu.be/y1HLAkb2lrU

Собираем Свой Суперкомпьютер Недорого

Для ряда ML задач процессора на этом сокеты не очень интересные по сравнению с решениями от AMD.

Можете привести пример из ML где амд будет лучше интела? У меня достаточно узкая специализация- числовые ряды- и вся предподготовка непараллелится и идет практически на одном ядре, поэтому несталкивался с этим, а по работе всегда был интеллистом, поэтому мало что знаю про амд. Интересно обоснованное мнение человека, который по настоящему использует многоядерность (или амд хороши чемто еще?).

примерно на коленке прикидывал для относительно больших моделей сколько нужно пропускной способности, но сам лично тестов не делал. Может тут кто-то из публики лично сравнивал?

Коллеги, если кто имеет такую статистику- напишите пожалуйста- насколько и на каких задачах ширина шины до гпу начинает влиять?

Собираем Свой Суперкомпьютер Недорого

О, супер! Тоже смотрю на них и думаю прикупить, благо на авито они недороги по сравнению с игровыми. Позвольте несколько вопросов:
1. Вы можете сравнить производительность к80 и игровых типа 2070,2080, 3080, 3090? Я встречал упоминание вскользь что производительность на уровне 2070супер, но это скорее было предположение. Интересно услышать из первых рук.
2. у к80 два чипа, тоесть это две карты в одном корпусе. и память 24гб. Вопрос по памяти- она делится на два- по 12 на чип или туда можно запихнуть гигантскую модель на все 24 гб?
как вообще в системе видится эта карта? как два ускорителя?
3. софтовых проблем нет? с дровами и поддержкой в современных фреймворках? тензорфлоу2 на них работает?

Как вообще впечатление от этой машины? Не разочаровались?
Заранее признателен за ответ.

Собираем Свой Суперкомпьютер Недорого

Тут зависит от задач. Например для включения в биржевой трейдинг нужно как можно больше мощностей.
С другой стороны- если вычислитель нужен редко- то смысла все это городить конечно же нет, проще арендовать гпу в облаках.
Смысл строить свой суперкомп есть только тогда, когда вы его можете загрузить круглосуточной работой, когда у вас есть пайплайн и конвейер данных. Если вы нагружаете гпу только когда приходите на работу и только на 10 минут в час- то или аренда или обычный комп в просторном корпусе под столом…

Чем полезным занять 100 карт на 100% времени целый год — если честно я не знаю. 10-20 карт — без проблем.

тем же самым, только больше моделей, больше вариантов параметров, больше данных, больше фич))

Опять же правило года действует
А что это?

Для ML нужно минимум x4-x8
Если не секрет, вы на каких задачах это ощущаете? Тестировали чтото на х1 и на х8 и оно дало сильную разницу?
Я пробовал х16 (карта воткнута в слот на матери) и не увидел разницы с х1 вообще. Возможно это был чисто умозрительный пример и если поработать дольше то разница будет. Опыта нет.

Собираем Свой Суперкомпьютер Недорого

Я занимаюсь подобного рода «суперкомпьютерами» достаточно давно и накопилось прилично опыта. Добавлю свои три копейки. Всё, о чем я пишу, опробовано и испробовано мной лично, если не указано обратное.

Итак, поехали.

1. Размещение оборудования

1а. Если мы говорим о дешевом вычислителе, то зачем нужно размещать его в общественном датацентре (ну если вы конечно не аффилированны с оным)?
Нужно подумать о своем небольшом помещении с хорошей продуваемостью — и будет вам счастье. Если нужен доступ с разных мест- микротики и впн — сейчас это несложно, зато вы уходите от суровых ограничений датацентров на габариты, что важно не только для удешевления, но и для долговечной работы карт, которые вам не придется плотно упаковывать в тесные корпуса; Понятно, что датацентр может быть необходим из неких политических моментов, типа политик инвесторов и тд, но я рассуждаю исключительно в терминах денег и технических решений. Я занимаюсь этим на свои деньги и пришел именно к такому формату;

1б. Продуваемость помещения зависит от мощности оборудования и геометрии самого помещения. Если вы делаете это не сами, то посоветуйтесь с вентиляционщиками- при всей банальности вопроса- треки воздушных потоков весьма неординарны и без опыта в этом деле — непредсказуемы.
Помните, что 2070супер кушает 130 Вт, 3090- до 370 Вт в зависимости от настроек питания гпу; То есть пара ферм 5х3090 в пиковой нагрузке будет выдавать 4квт тепла, которые вам надо удалить из помещения вместе с воздухом и обеспечить приток холодного воздуха того же объема. Бытовой распространенный напольный вентилятор диаметром 45см и мощностью 120вт работающий на выдув- это тот минимум с которого нужно начать.
1в. Кондиционеры не решают. Они только будут жрать кучу электричества. Решает забортный воздух. Даже летом.

2. Технические моменты реализации вычислительной фермы
2а. Корпус
Корпус ненужен. Корпус это зло. Нужен каркас, как у майнеров. И не ставьте карты плотно. Пусть между ними будет 10см и как можно больше воздуха; Ограничением также выступает длина хвостов питания от БП;
2б. Питание и райзеры
i) Вопросы питания и райзеры связаны непосредственно. Примите как данность что вам нужно питание карт через райзеры иначе на мощных картах у вас загорится либо разъем питания на матери, либо дороги на самой матери; Я использую обычные майнинговые райзеры на одну линию pci-e у которых есть разъем для подключения питания. Да, это х1, но мне пока лень паять чтото самодельное на х16 с доп.питанием; зависит, естественно, от задач- если нужно постоянно гонять из основного озу в память гпу большие объемы — то надо уширять шину.
ii) Схема питания. Можно использовать один мощный БП, можно использовать несколько БП по следующей схеме: Один (более сильный) БП питает мать и дает питание на райзеры (для расчетов мощности считаем, что через райзер карта потребляет 30 процентов своего тдп), второй и последующие БП питают карты через разъемы доп питания на самих картах. Не перепутайте, в сети полно примеров сгорания систем; питание карт через райзеры электрически связано с питанием матери, поэтому должно осуществляться одним БП, доп питание на картах же электрически не связано с матерью- незнаю как это сделано, но это факт); Такая схема питания удешевляет сборку, но увеличивает габариты фермы.
Можно приобрести так называемые синхронизаторы для одновременного запуска ведомых бп от ведущего, но это излишне, можно просто перемкнуть на-вечно скрепкой у ведомых бп нужные пины и они будут всегда включенными. Для карт это нормально- я питал так и древние 1070 и текущие 3090;
При использовании нескольких бп нужно включать их в розетки однообразно, тоесть чтобы ноль и фаза были на одних и техже контактах БП. При использовании ассиметричных (г-образных) вилок- это не проблема. Да, это геморрой, но это экономит деньги. Но мы тут как раз за этим)
iii) Блоки питания. Я негативно отношусь к переделанным серверным БП, ибо в сети полно примеров на тему умирания карт при сбое в таких бп. Хотя, признаюсь, блоки на 3КВт от IBM выглядят очень вкусно и притягательно и я неоднократно думал перейти на них, но мысль о сгорании нескольких карт 3090 меня сразу отрезвляет.
Я использую или фирменные Zalman EBT на 1200 Вт (когдато они были по приятным ценам в ДНС) или фирменные же маломощные блоки на 750Вт от нормальных брендов типа того же Залмана, Термалтейка и тд — одно время в ДНС были приличные термалтейки по низкой цене и аж с 60месячной гарантией — от жадности я их купил много и теперь приходится использовать. В последнее время я использую китайские БП высокой мощности (1.6, 1.8, 2.4 КВт), продающиеся в майнинговых инетмагазах;
iiii) Кондиционирование питания. При высокой стоимости оборудования- это обязательный момент. Я использую стабилизатор двойного преобразования Штиль Инстаб. У них есть интересные модели, которые берут на вход 3 фазы и выдают однофазные 220вольт. Дорого (примерно 100тр на 20КВА или 16КВт), но необходимо. Без них можно лишится всего в один момент, если вдруг электрик перепутает фазу с нолем или сделает обрыв ноля.

2в. Материская плата (и процессоры).
Тут все просто. Нам нужна мать с большим количеством линий pci-e для подключения карт и ссд и с поддержкой нужного объема озу;
Если вам достаточно 64 гб озу — то это дешевые бытовые платы прошлых поколений типа MSI Z270-A PRO или аналогичные; Именно на таких у меня все и крутится.
Текущие бытовые платы я рассматривать смысла не вижу- они поддерживают только 128гб а стоят дорого;
Для тех кому надо больше 128 гб озу- огромный выбор серверных плат, например на авито много двухпроцессорных плат Супермикро предыдущего поколения с сокетом 2011-3 и чипсетом с612, поддерживающих процессоры Xeon E5-2600 v3/v4 и имеющих 16 слотов DIMM куда можно установить до 2Тб (в зависимости от модели), например — SuperMicro MBD-X10DRi. Этот вариант я собираюсь реализовать в ближайшее время. Поддержка же процессоров как v3 так и v4 дает большой разбег по итоговой стоимости, хотя основная часть стоимости тут будет память, конечно.
Также отдельно стоит сказать о вот таком моменте- я использую переходники для подключения м2 ссд в pci-e x16 слоты. Многие матери не позволяют грузиться с них, но в целом это не проблема- быстрый ссд используется для хранения обрабатываемых данных, а загрузка системы происходит с обычных сата ссд. Почему-то такой вариант многих отпугивает и народ упорно ищет платы (или шьет биосы) для поддержки загрузки с м2 — я не вижу в этом никакой надобности. Да и разделять диск с системой и диск с данными- это всегда хорошо;

3. Хранение данных. Как говорил один мой древний начальник — если можешь всё хранить локально- храни локально на одном накопителе или зеркале, если не умещается- делай локальный рейд для увеличения ёмкости, и если только оно нелезет уже никуда- думай про внешние схд и соответствующее сетевое высокоскоростное хозяйство. Я анализирую курсы валют и у меня пока нет проблем с хранением- вся база mysql на 600млн строк занимает жалкие 15гб, а выборки по нужным частям сохраненные в питоновские массивы — вообще копейки, поэтому у меня стоят ссд вд блэк на 1 тб и этого пока хватает, но в будущем планирую рейд из 4х двухтерабайтных ссд, аналогичный тому, что был приведен в пример выше. Понятно, что это не показатель, и на других задачах имеется сильно больший расход пространства и там не уйти от схд.

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

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

5. Модели карт
Начиная с 20ого сеймейства я подсел на MSI Gaming X trio и MSI Suprim X. Это достаточно дорогие карты с хорошей схемотехникой, большим количеством фаз питания, хорошей отбраковкой чипов гпу (по сравнению с, например, MSI Ventus, которые вообще не едут) и очень крутой системой охлаждения. В целом я сделал достаточно обоснованный вывод, что лучше переплатить за премиум исполнение карты и получить отсутствие геморроя, больший срок службы и большую производительность, нежели взять дешевые варианты.

Надеюсь, это будет полезно людям, которые занимаются машинным обучением.
Всем успехов в обучении их моделей!

Что покупать для глубокого обучения: личный опыт и советы использования GPU

Уточню.
Вариант 1 (который неплохо смотрится) — плохой вариант как для дома, так и для индустриального использования. Для дома плох тем что карты друг над другом- они изжарятся очень быстро. Нужно продувать сбоку- а это дополнительные вентиляторы, которые шумят и выходят из строя;
Вариант 2 хорош, но только для индустриального использования, ибо воет как боинг на взлёте (8 сапфиров по 230 ватт, расположенных вплотную друг к другу требуют весьма сильных вентиляторов на продувку);
Фирменные рабочие станции рассматривать смысла не вижу- карт много не впихнешь, зато новые стоят как самолет. Так себе вариант. Скорее баловство. Как рабочий комп- да, как вычислительный комп- однозначно нет.
Если буквоедствовать, то HP z600 — древний бесполезный хлам, если ктото впечатлится «изяществом линий» от HP, то лучше смотреть на чтото поновее- типа HP z840;
В общем и целом- ничего лучше открытого каркаса для сборки машины от 3х гпу не придумано. Ну это если речь о несерверных вариантах; если говорить о дешевых серверных, то я видел недорогую сборку в noname стоечном корпусе куда умудрились запихнуть 2 бытовых гпу, но смысла в этом не очень вижу;
Ну и для общей образованности: надо понимать что существуют стоечные корпуса с сильной продувкой, заточенные именно под массив серверных гпу с пассивным охлаждением (типа tesla v100 и тп).

Что покупать для глубокого обучения: личный опыт и советы использования GPU

Загуглите типичный каркас для открытого рига — это оно и есть. Делается совершенно несложно из 12-ти реечек.
-Основная проблема компоновки (особенно с крупногабаритными картами, типа msi gaming x trio, когда их пять и более) — короткие провода у блоков питания. Ну и сами качественные бп на такие мощности- тоже сложно найти, выручают китайцы, но качество под вопросом; можно также использовать несколько бп в одной сборке- это нормально работает, но это гемор и лучше купить один бп на 2КВт;
-Также вызывает напряг нетривиальность подборки материнской платы, которая имеет нужное количество pci-e разъёмов и поддерживает 1-1.5 ТБ памяти (я за брендовые двухпроцессорные superMicro или Dell под xeon 26xx v4) и собственно стоимость этой памяти (ну это если нужно столько памяти; если ненужно — открывается огромный рынок дешевых китайских однопроцессорных плат под xeon 26xx v3 с поддержкой до 128 ГБ памяти);
Собственно с эксплуатацией проблем никаких нет, охлаждение сильно лучше закрытого бытового корпуса (да и нет никаких корпусов, где можно нормально разместить хотябы 5 трехслотовых гпу на райзерах), даже с кучей вентиляторов на сквозной продув. Ну внешний вид колхозный. Но зато терафлопсов дофига)

Нейросети и трейдинг. Часть 2: набор «сделай сам»

Спасибо.
А как вы генерите фичи? При таком количестве это должна быть некая полуавтоматическая система?
И, прошу прощения что лезу в глубь, можете привести пример нескольких нетривиальных фич?

Нейросети и трейдинг. Часть 2: набор «сделай сам»

Молодцы, ребята! Низкий поклон, за то, что делитесь информацией по такой щепетильной теме. Сам варюсь в ней и наблюдаю жёсткий информационный вакуум. И ваши две статьи меня очень и очень радуют- судя по вашим результатам, я двигаюсь в правильном направлении.

А теперь- несколько вопросов, если позволите:

1. Вы грузите данные за очень долгий срок и обучаетесь на них- имеет ли это смысл, особенно на криптовалютах? Ведь то, как вела себя пара 5 лет назад сейчас может быть уже не актуальным (причины и скрытые силы поменялись качественно или количественно). Пробовали учиться на данных только за последние 3-6-9 месяцев? Если да- то каковы результаты?

2. У вас работает 20-30 моделей, обученных на разных входных данных — тут два вопроса- а) топология нейросетей у них у всех одинаковая? и б) на каких разных данных вы их обучаете? речь идет о разных периодах одной пары из одного источника, об одной паре, но из разных источников данных (разные криптобиржи и тд) или даже о разных валютных парах (ну например, как максимум, можно грузить историю эфира, битка, фиатных пар, золота, нефти, sp500 и прочие индексы, и всё это в нескольких экземплярах, взятых с разных бирж :))

3. Вопрос о аппаратно-программной части: Вы упоминали о 200-300 тысяч отсчетов в обучающей выборке: а) какова утилизация памяти ГПУ при обучении? б) Какие видеокарты работают? что-то суровое вида тесла v100 или из бытового сегмента? в) распараллеливание по ГПУ делает сам TF? оно работает хорошо (в смысле скорость обучения хорошо зависит от количества ГПУ)? Если нужно использовать несколько ферм с ГПУ — то как это делается?

4. Думали ли вы о том, чтобы отказаться от свечей в пользу постоянных периодических отсчетов цены? Я например работаю с 10-секундными отсчетами. По идее — мы получаем больше информации, если не сворачиваем 60 точек цены (30 бидов и 30 асков) в одну пятиминутную свечу, характеризуемую 4-мя числами.
Про учёт объемов я молчу- ибо где-же сейчас можно не-нарисованные объемы получить- я не знаю. А подавать в нейросеть нарисованные- наверное, глупость.

5. >>Решения качественно улучшающие прогноз уже есть, но о них в следующей статье — Очень сильно жду.

Успехов вам!

Издательство Питер. Летняя распродажа

О. Печалька… Пропустил распродажу((

Information

Rating
5,850-th
Location
Москва и Московская обл., Россия
Date of birth
Registered
Activity