Как стать автором
Обновить

Комментарии 20

Интересно было б сравнить результаты до и после оптимизации, а не только с 5800H.

Сделано!

А сборки для эльбруса с PGO?

А тесты на 16 потоков не делались?

К сожалению у меня есть доступ только к виртуалке(16С поддерживает аппаратную виртуализацию). Поэтому у меня доступно только 12 потоков. на 12 потоках бенчмарк выдает 226719.14 FLOPS. Тест коммандой выдал 120 мс

Спасибо. Получается, что 16с и райзен 5800h идут почти вровень, и в случае 16c это достигается за счет большего количества физ ядер.

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

А если аналогичную оптимизацию внедрить в whisper.cpp, можно это уже в виде сервиса предлагать, расшифровка аудио нативно на эльбрусе.

Мне кажется, что нужно сравнивать процессоры в одинаковых условиях. Если уж решено было оптимизировать модель под Эльбрус, то имеет смысл так же оптимизировать ее под Ryzen и сравнивать уже оптимизированные модели.

НЛО прилетело и опубликовало эту надпись здесь

На всякий случай напоминаю, что лицензия на веса Альпаки наследуется от лицензии Ламы, которая вообще-то предполагает только для научной деятельности и прямо запрещает коммерческие и военные применения.

"in whole or in part, for (i) any commercial or production purposes, (ii) military purposes or in the service of nuclear technology, (iii) purposes of surveillance, including any research or development relating to surveillance, (iv) biometric processing, (v) in any manner that infringes, misappropriates, or otherwise violates any third-party rights, or (vi) in any manner that violates any applicable law and violating any privacy or security laws, rules, regulations, directives, or governmental requirements (including the General Data Privacy Regulation (Regulation (EU) 2016/679), the California Consumer Privacy Act, and any and all laws governing the processing of biometric information), as well as all amendments and successor laws to any of the foregoing;"

Вопрос, не нарушают ли ваши "заинтересованные в таком портировании" положения лицензии?

Ну и вообще, честно говоря не хочется, чтобы вместо обычного военкома появился "ChatVoenkom"

НЛО прилетело и опубликовало эту надпись здесь

Под x64 и так всё оптимизировано, поддержка AVX, например, есть.

Так что с тестами и сравнениями всё ок.

Так что с тестами и сравнениями всё ок.

Не совсем. У современных x86-64 иногда бывают встроенные видеоядра (например у Ryzen 5800H встроена Vega 8), которые llama не использует под Linux/Windows. Кстати, TDP чипа указывается с учетом TDP видеоядра, ну так, к слову ;) (хотя в последних коммитах появился ggml-opencl - что намекает что скоро начнут использовать, если еще не) И еще забыл сказать - по хорошему, если вы уж используете оптимизированные библиотеки на e2k, то надо постараться и хотя бы начать использовать что-нибудь типа MKL на x86, чтоб было совсем уж честно.

Поэтому формально для честного сравнения надо было бы провести оптимизацию под гибридные системы.

В целом, для честного сравнения нужно еще знать точную конфигурацию сравниваемых железок (пресловуты TDP у ноутбуков), все таки ответить на вопрос из первой статьи о том, зачем нужны всякие оговорки "С учетом того что Ryzen 7 5800H произведен по техпроцессу 7нм и имеет частоту 3200МГц с ускорением до 4400МГц. А Эльбрус 16с произведен по 16нм техпроцессу и имеет 2000МГц (У 8СВ вообще 1550МГц) результаты вполне неплохие." - так как из них создается ложное представление, что Эльбрус может взять 3.2 ГГц или даже 4.4 ГГц (хотя это не так). Но хотя бы графики уже без нормирования по частоте - уже прогресс.

В принципе минус еще в том, что отсутствует информация для воспроизведения резульатов - то есть непонятно какая версия компиялтора была и где, какие флаги были на Ryzen и так далее.

Плюс результаты очень уж странные вышли - потому что на 1 ядро мой M2 Max должен быть примерно на уровне этого Ryzen'а, но у меня результаты совершенно другие получились:

❯ for a in {1..12};do printf "%s;" $a;./main -t $a -m ./ggml-alpaca-7b-q4.bin -s 42 -p "Random joke:" -n 32 2>&1 |grep -E "llama_print_timings:\s+eval time" | cut -d "(" -f 2 | grep -o -e "[0-9\.]*" ;done

1;201.36
2;104.44
3;71.91
4;56.73
5;48.38
6;42.88
7;48.51
8;49.53
9;79.62
10;77.47
11;79.82
12;101.27

Из изменений - мне пришлось греп чуть поменять, так как по сравнению со статьей количество пробелов после : и перед "eval time" было другим (у меня коммит взят от 25 апреля - то есть не самый свежий, но и не самый старый).

При этом я проверил, по встроенным сенсорам загрузка GPU и NPU - по нулям, то есть тест чисто на CPU (впрочем, Accelerate Framework на маке может использовать AMX расширения, если фреймворк посчитает это необходимым).

А, при всем при этом энергопотребление (на глаз по asitop'у) было примерно 10 Вт на 1 потоке, 16 на двух, 23 на трех, 26 на 4-х и так далее, на всех 12-и было 30 Вт ровно.

У современных x86-64 иногда бывают встроенные видеоядра (например у Ryzen 5800H встроена Vega 8), которые llama не использует под Linux/Windows. Кстати, TDP чипа указывается с учетом TDP видеоядра, ну так, к слову ;)

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

Поэтому формально для честного сравнения надо было бы провести оптимизацию под гибридные системы.

Гибридные системы из человека и допинга как-то не приветствуются на обычных соревнованиях. Но да, поскольку

хотя в последних коммитах появился ggml-opencl - что намекает что скоро начнут использовать, если еще не

, то если это позволит одновременно использовать GPU+CPU, сравнение можно будет назвать хоть как-то адекватным. Иначе вы будете сравнивать GPU и CPU, что лишено всякого смысла - набор решаемых задач у них принципиально разный.

Ну и на последок,

зачем нужны всякие оговорки "С учетом того что Ryzen 7 5800H произведен по техпроцессу 7нм и имеет частоту 3200МГц с ускорением до 4400МГц. А Эльбрус 16с произведен по 16нм техпроцессу и имеет 2000МГц (У 8СВ вообще 1550МГц) результаты вполне неплохие."

Во-первых, это мнение автора, ему тут самое место.

Во-вторых.

так как из них создается ложное представление, что Эльбрус может взять 3.2 ГГц или даже 4.4 ГГц (хотя это не так)

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

Мы же про сравнение процессоров говорим, верно? Не про системы на чипе?

Мы говорим про тестирование продуктов в целом. Хотите объективно это провести - используйте все возможности. Притом если мы делаем тест, который рассказывает вам про все - то надо делать последовательно тест с использованием видеоядра и без.

устройство можно с легкостью порядка производителя процессоров и систем на чипе взять и добавить к другому процессору в другую систему на чипе.

С легкостью порядка производителя процессоров можно сделать и другой процессор :) Из-за этого ваше утверждение не несет полезной смысловой нагрузки

Гибридные системы из человека и допинга как-то не приветствуются на обычных соревнованиях

У вас аналогия некорректна - допинг скорее эквивалентен разгону в рамках железа, а не дополнительным ядрам или вычислителям.

Во-первых, это мнение автора, ему тут самое место.

Оно не имеет никакого смысла по причине отсутствия продуктов с такими возможностями. В контексте статьи является манипуляцией, так как у читателей создает впечатление, что вопрос лишь в том, чтобы поднять частоту, что сделать не получится.

У кого создаётся? У вас?

У читателя. Само наличие такой фразы предполагает, что проблема частоты решаема.

Может, автор имел ввиду что прирост производительности от перехода с 16 нм на 7 нм невзирая на частоту мог быть достигнут другими способами для определённого вида задач

Такой вывод из заявления сделать не получится, потому что в нем явно упор на частоту.

И откуда такие познания что Эльбрус(а ещё не менее важно какой - конкретный процессор или архитектура?) может, а чего нет?

Не существует продуктов - значит не может. Вспоминаем о "чайнике Рассела", когда просим доказательства возможности-невозможности :)

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

Альтернативно - попробуйте спросить у МЦСТшников или даже поискать по Эльбрусо-чатам :)

Мы говорим про тестирование продуктов в целом.

Вы ошиблись статьёй, ведь здесь идёт речь о конкретных процессорах. Тогда ваш комментарий полностью и бесповоротно

не несет полезной смысловой нагрузки.

Вы ошиблись статьёй, ведь здесь идёт речь о конкретных процессорах. Тогда ваш комментарий полностью и бесповоротно

А процессор это не продукт, по-вашему? Более того из вашего тезиса напрямую вытекает что надо и видеоядро подключать, так как у Ryzen 5800H оно входит в состав :)

Под x86 там все уже оптимизировано, там такие же вставки c AVX/AVX2 билтинами

А какой набор SIMD инструкций использовался в тесте на Ryzen 7 5800H?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории