0: Всем привет в сегодняшнем видео я хочу вам показать, как можно улучшить энергопотребление видеокарт nvidia цмп на
1: На примере модели 50 h x, а также я вам покажу, как можно в 2 раза увеличить скорость генерации токенов в локальных моделях на этой видеокарте я.
2: Как бы нашёл этот способ. Совсем недавно его описали на гитхабе. Я вам это все покажу на примере, все сравним до и после и действительно увидим прирост в 2 раза в токе.
3: Generation, а также где-то 50% прироста в промт процессинге.
4: Так, ну давайте, значит начнём отправная точка у нас какая есть видеокарта nvidia цмп 50 h x. Значит, что касаемо энергопотребления, как вы видите, тут у меня сделаны.
5: 2 вещи. Во первых, я ограничил тдп значением в 150 ватт. Я это сделал. Во первых, для того, чтобы под нагрузкой видеокарта меньше грелась во
6: Вторых, чтобы она меньше шумела, потому что иначе по дефолту она шумит как пылесос, как бы мне это не нравится, потому что у меня сервак стоит в квартире, и это как бы не good. Вот. Поэтому значит, что
7: Делать, чтобы ограничить тдп в 150 ватт. Почему 150 ватт? Я взял такое значение, как бы я тестировал разные варианты, то есть по дефолту тдп этой видеокарты 220.
8: 5 ватт вот и опытным путём я пришёл к тому мнению, что 150 ватт является оптимальным вариантом. При такой конфигурации теряется производительность в нейронках где-то
9: На 5 тире 7%. Вот.
10: Максимальные температуры и обороты вентилятора несравнимо ниже, поэтому 150 ватт я считаю оптимальным значением, так что нужно сделать, чтобы выставить такое тдп. Значит, во первых,
11: 1 командой. Вот такой включаем персистент мот. То есть, когда вы введёте эту команду, у вас вот персистент эм, будет в значении, он это 1 шаг.
12: Вот, затем 2 команду вы
13: Отправляете вот такую.
14: Вот так sudo, nvidia, smi пл. 150 вот, и когда выполните эту команду, у вас будет ограничение в тдп 100.
15: 50 ватт так это 1 шаг, 2 шаг изначально видеокарты nvidia цмп, мне кажется, любые, но как бы я за это не ручаюсь, но пятидесятые.
16: Точно, она всегда работает в режиме п 0 п 0. Это как бы режим максимальной производительности. В чем это плохо а в том, что в простое эта видюха жрёт около 70 ватт и ниже не опускает.
17: То есть я когда в начале её купил, поставил, настроил и меня вот этот момент с энергопотреблением сильно напряг, потому что, ну, блин, то есть у меня сервак.
18: Запущен 24 на 7. И если она в простое будет жрать постоянно 70 ватт, как бы это, ну, не очень хорошо. Во первых, она грелась, во вторых, она все-таки немножко шумела, потому что постоянно под
19: Большой нагрузка была, как бы, вот, значит, я поначалу как бы поискал, посмотрел, не нашёл никаких решений и как бы смирился, как бы писали, что это такой косяк цмп видюшек, что вот они так некорректно, вот эти
20: Режим энергопотребления переключают, и она, грубо говоря, постоянно в п 0 находится. Но, значит, однажды я нашёл такую интересную штуку на гитхабе.
21: Есть вот такой вот.
22: Очень интересный проект, который называется nvidia петейти, вот суть его в чем, что эта штука, в общем, активирует режим п.
23: 8 на видюхах цмп в простое, то есть здесь есть инструкция, как это все ставится, то есть тут не буду показывать все просто довольно-таки вот, и значит, после того, как вот мы поставим вот этот nvidia,
24: Esthetic то, значит, у нас видеокарты цмп вот, в частности, моя 50 h x в простое переходит в режим п. 8 и уже потребляет всего лишь 20 ватт я считаю это круто и плохо.
25: Что я раньше не нашёл этот способ, но хорошо, что нашёл в итоге. Поэтому вот что касается энергопотребления, вот 2 такие фишки я рекомендую сделать, то есть ограничить подп и установить
26: Настроить nvidia Петей, вот этот вот.
27: Так, теперь что касаемо скорости работы с нейросетями, значит, давайте посмотрим. Сейчас у меня, я все сбросил первоначальные настройки, все. То есть у меня обычные лама сипипи.
28: Сервер настроен. Вот. Ну, для примера, будем использовать модельку квен 3 5 9 би, квантизация ку 5 км. Вот. Значит, смотрите, сейчас в дефолтном состоянии
29: У меня моя цмп 50 h x выдаёт около 25 токенов в секунду на генерацию и где-то около 250 токенов пром. Процессинга давайте проверим, напиши.
30: Мне html код.
31: Простого.
32: Простого лендинга.
33: Так, смотрим, вот как видно, токен дженерейшн у нас находится сейчас примерно на уровне 25.
34: Вот, то есть я как бы вот когда увидел эту скорость, я, в принципе смирился с ней, поискал, погуглил, особо не нашёл я какая скорость у других людей.
35: На этой видеокарте, но как бы больше я выжить не смог. Вот у меня контекст 64000 токенов, и вот скорость в начале 25 была. Вот чем больше контекст наполняется, скорость постепенно снижается. Вот 24
36: 4 с копейками. Ну, в общем, будем считать 24 токена в секунду. Скорость генерации
37: Вот.
38: Значит, зафиксировали. Дальше давайте ещё зафиксируем скорость как бы на примере бенчмарка. У меня на серваке тут установлен ещё лама бенчи.
39: Вот сейчас мы попробуем через этот бенчмарк запустить.
40: Так.
41: Надо найти тут команду моей шпаргалочки.
42: Так, значит, переходим в директорию лама бенчи?
43: Включаем вот это.
44: Так, ну вот у меня тест мой стандартный, я обычно на нём проверяю, то есть вот этот бенчмарк лама бенчи, он как тестирует по api, подключается к модели, к моей локальной вот, ну, у меня тут, значит, настроен.
45: На пром. Процессинг 512, то generation 512 и глубина 8192 запускаем тест.
46: Вот так. Ну, здесь пока тест выполняется, я, наверное, перемотаю. Вернёмся, когда тест закончится.
47: Итак, завершился наш тест. Значит, что мы видим пром процессинг. У нас 285 токенов в секунду и токен дженерейшн 26 55. Вот.
48: Это показатели по бенчмарку. Ну давайте их запишем.
49: Значит, результата до.
50: Угу. Ну, допустим.
51: Так значит что нам нужно сделать, чтобы ускорить нашу нейросеть кстати чуть не забыл про entity, значит многие могут сказать.
52: Есть же ещё m типи модели квен те же самые, да вот почему ты их не тестишь. Давайте её тоже затестим. Тут фишка в чем? Что значит вот по.
53: По дефолту.
54: Так, сейчас найду команду.
55: Так, переходим обратно. Наш главный сервер.
56: Вот запускаем этипи моделька, вот она у меня тут 1 в списке есть вот с параметрами, вот драфт н, Макс единичка, то есть тут я уже тоже опытным путём все.
57: Параметры вот эти все значения я тестил и пришёл к выводу, что на единичке мтип показывает наилучший результат. Вот сейчас модель загрузится, и мы ещё и мтип версию
58: Того же квна 9 би протестим.
59: Моделька у меня грузится медленно, потому что у меня видеокарта подключена через Райзер икс 1, поэтому ждём это не быстро.
60: Так, моделька загрузилась. Давайте затестим.
61: Давайте затестим нашу этипи моделька вот мы видим, что mtv подключилась, давайте тот же промт, напиши мне html код.
62: Простого.
63: Лендинга запускаем.
64: Вот как мы видим, наша мтип моделька в принципе не показывает никакого прироста. Либо минимальный прирост вот там 25 и 6. Ну, может быть, 26 добежит.
65: Ну, в общем, почти 26. То есть, какой можно вывод сделать в базовых настройках? Вот мтип, в принципе, даёт всего лишь прирост в 1 токен.
66: А может быть даже меньше. Вот в принципе все понятно. В принципе, тот же lana бенч, он примерно те же самые результаты покажет, что и
67: Без этипи. То есть вот не вижу смысла это перетещивать. Значит теперь как раз давайте перейдём к нашему способу по ускорению. Что нам для этого нужно сделать?
68: Так, а для этого нам нужно сделать такие несложные вещи. Значит, этот способ я вообще нашёл тоже на гитхабе, значит, 1.
69: Человек user под именем арабелла вот, значит, на вот этой страничке я ссылку в описании оставлю, значит, он
70: Тут описывает, что нашёл решение для видеокарт цмп. Вот он тут пишет для 170, для 90, в принципе, вот для 50 это должно работать. Скорее всего, это
71: Будет работать и для 70. Вот. Значит, в чем суть этого как бы патча. Значит, вообще проблема цмпк в том-то, что они у нас урезаны во многих местах.
72: Из за этого они, конечно, уступают по производительности тоже 20, 80 тиай. Вот, значит, вот этот вот человек, он обнаружил, что наши цпки, они как бы медленно
73: Вычисляют как бы там все свои вычисления через вот этот dp 4 a, то есть у нас лама сипипи как бы при сборке.
74: Вот у неё есть такой участок кода, где есть условие, что если видеокарта использует куда архитектуру вот, то значит в общем, это все будет работать через dp 4 a вот.
75: Ну а на наших видюхах он работает не лучшим образом, и значит вот этот юзер предлагает такой патч, который бы заставлял наши видеокарты работать не через dp 4 a ha.
76: Через dp 2 a. То есть что для этого нужно сделать, значит лама сипипи вот по вот этому пути нужно открыть файлик, найти вот.
77: Этот вот участок кода, это вот он тут пишет 723 строка и заменить его на вот такой код. То есть тут по факту мы добавляем условие, что если мы там с вот таким
78: Параметрам будем билдить нашла, а cpp вот то, как бы вычисления будут вот через вот это, вот эту ветку проходить, через нашу новую, и это задействует вычисления.
79: Ди пи 2 a вместо ди пи 4 a.
80: Вот, значит, ну, я вот этот вот код немножко переделал. То есть я вот эти условия, в принципе, оставил все те же самые, но вот я вот эти вот условия немножко по другому написал, как бы более понятным для меня способом.
81: В принципе, сейчас я это покажу.
82: Так давайте откроем новый блокнот.
83: Значит, я в принципе этот код переписал вот таким образом.
84: То есть тут что у нас в принципе все тоже самое. То есть проверяется, если ведюха куда потом, если задан параметр дизабл дипи 4 a, то мы идём вот сюда и выполняем вот это иначе идём по
85: Стандартным пути и выполняем через dp 4 a. То есть в принципе, вот и весь код давайте это сделаем на практике.
86: Так, значит, находимся мы в моём лама сервере. Значит, что нам для этого нужно делать? Во первых, я переключусь на юзера. Лама. Так, значит, дальше идём.
87: По вот Такому пути в lana сипипи. Вот далее, что нам нужно сделать? Нам нужно открыть на редакти.
88: Ирование вот этот наш файлик коммон точка кух.
89: В принципе, тут можно добавить сейчас для удобства параметр эль.
90: Чтобы видеть номера строк вот, значит, и опускаемся на 700 там 23 или какую там строку ну тут же опять же от версии llama сипипи это
91: Строка там может плюс минус меняться, потому что файл может редактироваться в разных сборках, но не суть. То есть там 720 какая-то строка. Сейчас мы найдём эту функцию, как она называется, скажу.
92: Вот короче вот эта функция static, девайс форслайн инт джимэл, куда дипи 4 a. И вот внутри этой функции есть вот этот вот участок, ко.
93: Который как раз нас интересует, что мы делаем. Мы просто берём
94: Удаляем.
95: Вот это вот все условия, которое связано с could архитектурой.
96: Вот.
97: И значит, что берём вот эту вот мою штуку.
98: Вставляем.
99: Вот и сохраняем.
100: Так, значит, отредактировали мы этот файлик в lana сипипи далее, что нам нужно сделать? Нам нужно пересобрать лама сервер заново все. То есть че мы делаем? Мы, значит, сначала удаляем
101: Старый билд. Затем.
102: Значит, собираем заново лама сервер с такими параметрами. Значит, в чем тут самая главная суть? Это вот этот вот параметр.
103: DSA, куда флакс и флаг дизел дипи 4 a. Вот мы как раз в нашем коде вот задавали такую переменную, вот, чтобы сработал вот этот участок кода, то есть вот
104: Флаг вот этот вот раз. И потом нужно добавить ещё вот этот флаг ф мэтт фолс, честно сказать, не помню я, что он отключает, но как бы на практике я проверял с ним и без
105: Его с ним скорость генерации выше, поэтому вот эти 2 флага обязательно выполняем.
106: Так есть. И запускаем собственно, сборку. Так, ну, сборка тут проходит довольно долго. Вернёмся, когда все закончится.
107: Итак, как мы видим, сборка у нас завершилась, так что нам нужно сделать? Давайте
108: Сменим обратно модельку на queen 3 5 9 би.
109: Не этипи и посмотрим, как изменились скорости на ней, так она у меня под 3 номером. Запускаем.
110: Так ждём пока у нас стартанет наш лама сервер с моделью 9 би ко 5 км и посмотрим что у нас получилось.
111: Так, все, лама, сервер запущен, возвращаемся, открываем новый чат, видим модель уже у нас не mtb и давайте тот же запрос.
112: Напиши html код простого лендинга отправляем.
113: Так что мы видим, как видите, скорость генерации у нас 44 токена в секунду стала. Напомню, что была 24 с копейками.
114: То есть мы уже получили + 20 тпс генерации благодаря вот этому нашему патчу.
115: Но это ещё не все, давайте сменим нашу модельку на empty пи версию.
116: Так, ещё немного подождём.
117: Как мы видим мтип я все также запускаю с параметром спёк драфт Макс единичка это самый оптимальный параметр с ним скорость максимальная с mtb.
118: Так стартовал у нас лама сервер с нашей мтип моделькой. Давайте её затестим.
119: Так, делаем тот же промт напиши html, код простого лендинга.
120: Отправляем.
121: И что мы можем видеть? Мтип модель у нас генерирует со скоростью 55 токенов в секунду, даже 56, то есть ещё + 10.
122: Токенов в секунду от нетипи модели. То есть, ребят, какой итог благодаря вот этим нашим манипуляциям мы смогли с 24 токенов в секунду увеличить скорость до 5
123: 55 токенов в секунду. То есть это более чем в 2 раза на той же самой видяхе. Да, давайте ещё как бы для чистоты эксперимента замерим в ламбе.
124: Нашу этипи модельку с нашими всеми фиксами.
125: Так.
126: Значит, что мы делаем?
127: Переходим в раздел.
128: Выполняем это.
129: И запускаем тот же самый бенчмарк с теми же параметрами, как в прошлый раз.
130: Немножко подождём, посмотрим, что нам покажет бенчмарк.
131: Итак, бенчмарк завершился, что мы видим пром. Процессинг у нас стал 319, а токен дженерейшн 54 и 5.
132: То есть копируем это все, где наш файлик с результатами, значит пишем.
133: После.
134: И вот что мы получили в итоге после нашего патча пром процессинг у нас вырос с 285 до 319, а токен дженерейшн с 26 до 54.
135: 4 по бенчмарку, поэтому прирост больше чем в 2 раза. На этом все. Ребят, пробуйте, тестируйте этот способ. Я думаю, что на видеокартах
136: Цмп 50, 70 и 90, он должен работать, может быть и на других цмп ках заработает. Не знаю, надо пробовать. Поэтому всем спасибо. Пишите комменты.
137: Мне интересно посмотреть, какие у вас результаты, то есть насколько у вас улучшилась скорость генерации, на каких видеокартах и прочее.