Снова загоняем Альпаку на Эльбрус
Алексей Михайлюкв предыдущей статье я тестировал Alpaca на Эльбрус-8СВ и Ryzen 7 5800H. Теперь благодаря Михаилу Шигорину получилось протестировать на Эльбрус-16С.
Что было сделано
Сборка почти не отличалась от сборки на 8СВ, единственное я поменял -ftune=elbrus-16c
(для более подробной информации посмотрите предыдущую статью).
Запуск
Я решил протестировать сразу 3 системы для наглядности. Тестировались Эльбрус-8СВ, Эльбрус-16с(с 12 ядрами) и Ryzen 7 5800H. Тест скорости проводил следующей командой, которая была предложена пользователем rPman на Хабре.
for a in {1..8};do printf "%s;" $a;./main -t $a -m ./models/ggml-alpaca-7b-q4.bin -s 42 -p "Random joke:" -n 32 2>&1 |grep "llama_print_timings: eval time" | cut -d "(" -f 2 | grep -o -e "[0-9\.]*" ;done
Для того чтобы условия были равными(на сколько это возможно) сначала я протестировал все три процессора на 8 потоках.
А что насчет 12-ти потоков?
Затем я решил протестировать на 12-ти потоках. Соответственно 8СВ уходит из теста. Скрипт немного изменил.
for a in {1..12};do printf "%s;" $a;./main -t $a -m ./models/ggml-alpaca-7b-q4.bin -s 42 -p "Random joke:" -n 32 2>&1 |grep "llama_print_timings: eval time" | cut -d "(" -f 2 | grep -o -e "[0-9\.]*" ;done
А теперь ограничим производительность на Ryzen.
Я решил ограничить частоты на Ryzen. К сожалению пока получилось ограничить только на 1.3GHz(Если получится выставлю на 2.0GHz. Рязань меня не слушает:( ). И вот тут уже результаты довольно близкие. В некоторые моменты Эльбрус даже быстрее.
Заключение
Эльбрус-16с поддерживает аппаратную виртуализацию и данный пример был как раз запущен под виртуалкой. Я очень доволен результатами, но судя по всему необходимо сделать некоторые оптимизации для Эльбруса-16С.