Нейронные сети на Эльбрусе

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Вступление

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

GGML

Ранее я уже писал о данной нейронной сети, однако в предыдущей статье данные устарели, так как ggml уже переделали на 1000 раз, хочу показать последние результаты, которых удалось добиться благодаря стараниям Ильи Курдюкова. В нынешнем ggml упор пошел больше на GPU чем на CPU. Поэтому для тестов предлагаю данный репозиторий. Его также можно установить на любое устройство, которое поддерживает ggml. Также имеется скрипт bench.sh, который можно запустить для тестов. Для скачивания модели есть скрипт ./download-koala.sh

Тесты ggml

Результаты представлены в миллисекундах.

Потоки

Intel Core i5-8250U, мс

Эльбрус-16С, мс

Эльбрус-8СВ, мс

1

544.01

771.46

974.84

2

313.06

402.19

503.77

3

280.07

280.82

349.39

4

269.33

219.58

271.34

5

-

181.06

225.06

6

-

155.89

194.02

7

-

137.33

172.53

8

-

123.22

160.89

P.S. Тут представлены пока не все тесты, в дальнейшем дополню.

NCNN

ncnn - Это высокопроизводительный фреймворк нейросетевого вывода, оптимизированный для мобильной платформы. Также данный фреймворк поддерживает vulkan что позволяет запускать нейросети на видеокартах AMD. Тут уже больше не про оптимизации, а про мои "хотелки". Изначально я просто хотел запустить Stable-Diffusion на Эльбрусе, однако, pytorch полноценно пока не портирован под e2k. Поэтому я пошел по пути наименьшего сопротивления и нашел данный фреймворк вместе с которым можно использовать Stable-Diffusion. Ссылка на репозиторий. Для начала, благодаря данному фреймворку, запустил нейронную сеть Yolov3. Во всех последующих экспериментах использовалась видеокарта radeon RX6700XT. Сборка была сделана следующим образом:

git clone https://github.com/Tencent/ncnn.git
cd ncnn
git submodule update --init
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DNCNN_VULKAN=ON ..
make -j8
sudo make install

Если хотите запустить пример с работой нейронной сети yolov3 то можно выполнить следующие действия:

cd examples
make -j8
wget https://raw.githubusercontent.com/Qengineering/YoloV3-ncnn-Jetson-Nano/main/mobilenetv2_yolov3.param
wget https://github.com/Qengineering/YoloV3-ncnn-Jetson-Nano/raw/main/mobilenetv2_yolov3.bin
./yolov3 (изображение, на котором хотите запустить распознавание).png

Stable-Diffusion-ncnn

Ну и на сладкое генерация картинок. На данный момент все собирается без каких либо проблем. Единственное в коде изменил false на true в параметре use_vulkan_compute. Также скачал стандартные модели (AutoencoderKL-fp16.bin, FrozenCLIPEmbedder-fp16.bin, UNetModel-MHA-fp16.bin, AutoencoderKL-encoder-512-512-fp16.bin), предложенные разработчиком. После, в файле magic.txt заменил на свой промпт, и получил следующее изображение

Изображение, сгенерированное на Эльбрус-8СВ и видеокарте radeon RX6700XT
Изображение, сгенерированное на Эльбрус-8СВ и видеокарте radeon RX6700XT

Upscaler

Для апскейла изображения использовался waifu2x-ncnn-vulkan.

git clone https://github.com/nihui/waifu2x-ncnn-vulkan
cd waifu2x-ncnn-vulkan
git submodule update --init --recursive
mkdir build
cd build
cmake ../src
cmake --build . -j 8

./waifu2x-ncnn-vulkan -i input.png -o output.png -n 2 -s 2

Заключение

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

Источник: https://habr.com/ru/articles/752138/


Интересные статьи

Интересные статьи

Как мы обсуждали ранее, отключение интернета в конкретной стране или городе — не вымышленная угроза, а вполне реализуемое действие. В частности, международная ассоциация Internet Society зафиксиро...
Пост в помощь тем кто интересуется практической пользой от применения нейросетей на фондовом рынке.
Я предпочитаю курсы, а не книги. Хотя лучшие книги определённо превосходят курсы, есть несколько причин, по которым прекрасный курс оставит более глубокое впечатление. На...
Сотрудники Сеульского университета опубликовали исследование о симуляции движения двуногих персонажей на основе работы суставов и мышечных сокращений, использующей нейросеть с Deep Reinforcement ...
Когда в Android появился встроенный счетчик потраченного на приложения времени, я первым делом обратил внимание на социальные сети: Instagram, ВКонтакте, Facebook и Telegram. Получилось, что за н...