Комментарии 9
Для сравнения на Nvidia Orin Nano (те же 15-25 W), ResNet50. 950 qps. На полноценных ускорителях типа a10, 5-6k qps - не предел. Это просто для общего понимания колоссальной разницы.
Полученные результаты подчеркнули, что российские технологические решения конкурентоспособны и способны решать актуальные задачи в области ИИ
Вывод совершенно проивоположен тому, что написано до этого в статье. Для Э8СВ и NM Card производительность Resnet50 грубо составляет примерно 10 qps. При этом производительность даже условно "мобильного" решения от Nvidia - Orin Nano - составляет, как верно заметил комментатор выше, примерно 1000 qps. Т.е. примерно в 100 раз выше. К тому же TDP Э8СВ выше в несколько раз, что указано в начале статьи. Если же мы возьмём "взрослые" серверные решения от Nvidia по типу H100, то там цифры ещё на порядок выше. Т.е. Э8СВ и MN Card абсолютно неконкуретны современным решениям от Nvidia. Да и это логично - Э8СВ является CPU, а NM Card DSP процессором. Т.е. они по сути своей не являются AI процессорами, и неудивительно, что проигрывают специализированным решениям.
Из вышеприведённых чипов только IVA TPU является действительно специализированным AI решением. И его результаты на том же Resnet50 было бы интересно посмотреть, но как раз они отсутствуют. Понятно, что они также существенно уступят Nvidia, но разрыв по идее должен быть не в 100 раз, и даже возможно не на порядок.
UPD. Для IVA табличка дана по ссылке, а не в статье. Из неё видно, Resnet50 показывает уже преемлемые цифры в несколько сотен qps, в зависимости от размера батча. Ещё не конкурентно, но уже что-то.

Тут те же 990 FPS. По ссылке Nvidia упоминание про батч-сайз сразу в лоб не нашёл.
Реальная проблема тут скорее в том, что серийность дивайсов кардинально разная.
Хотя, возможно с учетом очень высоких цен от Nvidia на такие платы сравнение валидное. Просто скорее всего есть китайские платы с такими же показателями, но на порядок дешевле.
Это не совсем те же FPS. У Nvidia Jetson под 1000 FPS с batch 1, я эту цифру помню из каких-то реальных измерений. Если кстати сейчас зайти на сайт nvidia, то они вообще 6000+ Samples/s показывают на Orin. Честно говоря, надо разбираться, что эта цифра на самом деле означает.
Здесь же 990 для Batch 8 и с некоей оптимизацией Staging, которая непонятно мне, что делает и судя по большому количеству прочерков в таблице, вообще её корректность под вопросом. А для нормального режима с batch 1 это 255 FPS.
Ещё наводит на некоторые мысли, что при 990 FPS performance составляет 3.85 GFLOPS. Вообще, тут непонятно, это реально GFLOPS или GOPS (int8). Во-вторых, у IVA TPU не 16 TFLOPS, как указано, а на самом деле в районе 24 TFLOPS (ну либо они гоняли тесты на 500 МГЦ). Но даже если мы примем приведённые в статье цифры как правильные, то реально HFU (утилизация тензорного юнита в данном случае) составляет всего лишь 24 %, что очень мало для конволюционных сетей, запущенных на TPU. На Nvidia утилизация на таких сетях заметно выше 50 %. Т.е. что-то не сходятся тут цифры. У меня есть такое подозрение, что размером картинок тут поигрались. Я на какой-то презентации от IVA видел цифры по перфу для Resnet-50, и там в сноске мелким шрифтом было "размер 112х112", когда как стандарт 224х224. Как бы в этих измерениях не было такого же.
Но на самом деле это всё может быть не столь важно, понятно, что в определённых сценариях IVA TPU может заменить условный Jetson Nano уж точно. Скорее главная проблема как обычно в софтварной экосистеме. Надо все сетки руками с помощью тулов от IVA перегонять, смотреть, что там происходит, фиксить баги, анализировать потери точности. Для клиентов это самая большая проблема как мне кажется.
1. Анализ производительности матричных операций (SGEMM)
Ключевая операция в нейросетях — матричное умножение (GEMM). Согласно Кнуту, асимптотическая сложность классического алгоритма умножения матриц n×nn×n равна O(n^3) но на практике оптимизация по алгоритму Штрассена дает сложность: O(n^2.81) а также аппаратные ускорители (SIMD, векторные регистры).
Ускорение после замены SGEMM:
Замена стандартного SGEMM в ONNX Runtime на оптимизированные функции из EML (Elbrus Media Library) сократила константный множитель в сложности.
Если исходный код ORT имел сложность O(n^3)
После замены на EML исходная константа C_EML << C_ORT
Это объясняет BERT в 14.8 раз.
Пример: Если C_ORT = 10, C_EML = 0.67, ускорение ≈ 14.8x (10 / 0.67 ≈ 14.8).
Теоретическая vs реальная производительность NM Card:
теоретический максимум: 512 GFlops=8 ячеек×8 операций/такт×f ГГц512GFlops=8ячеек×8операций/такт×fГГц.
Реальная производительность 136.6 GFlops136.6GFlops (26.7%) указывает на:
Ограничения законов Амдала и Густавсона-Барсиса: часть операций не параллелится, создавая "бутылочное горло".
Низкую эффективность использования памяти: время доступа к данным (tmem) превышает время вычислений (tcalc), что нарушает баланс Роара: tmem/tcalc ≥1.
2. Масштабируемость NM Card (коэффициент 4.46)
идеальное ускорение на p процессорах описывается формулой: Sp=T1/Tp,
где T1 — время на 1 ядре, Tp — на p ядрах.
Для NM Card S4=4.46(теория: Sp≤p).
Это превышение возможно только если:
Наблюдается суперлинейное ускорение (редкий случай), например, из-за кэширования данных при распределении задачи.
Или в однопоточном режиме часть ресурсов простаивала (например, векторные регистры не полностью загружены).
Пусть α — доля параллелимого кода. По закону Амдала:
4.46 = 1 / [(1 - alpha) + (alpha / 4)] → alpha ≈ 0.99 (99% кода параллелится).что маловероятно. Скорее всего, в тестах использовались embarrassingly parallel задачи (например, независимая обработка кадров).
3. Утилизация IVA TPU (24.7%)
Теоретическая производительность IVA TPU: 16TFLOPS, реальная — 3.95TFLOPS.
Разрыв можно объяснить через модель фон Неймана:
Утилизация=Реальные FLOPS/Теор. FLOPS=(Тактовая частота×Эффективность конвейера)/(Тактовая частота×Пиковая пропускная способность)
Формула утилизации:
Утилизация = (Реальные_FLOPS / Теоретические_FLOPS) 100%
Для IVA TPU: (3.95 TFLOPS / 16 TFLOPS) 100 ≈ 24.7%. Из-за:Простоев между операциями (data hazards).
Неоптимального планирования инструкций (по Кнуту, раздел 1.3.3 «Анализа алгоритмов»).
4. Анализ задержек (Latency)
Для режима Latency в IVA TPU:
Tlatency=Tзагрузка+Tвычисления+Tвыгрузка
Если Tвычисления≪Tзагрузка, то ускорение вычислений почти не влияет на общее время.
Закон Лилли:
Ускорение_системы ≤ T_вычислений / T_загрузки
5. Оптимизация батчей (Batch Size)
Для NM Card при росте батча с 1 до 8:
Утилизация растет, но после Batch=4 прирост замедляется.Это соответствует закону убывающей отдачи: ΔПроизводительность ∝ 1 / sqrt(Batch)
Оптимальный батч:
Находится через решение уравнения через метод Ньютона-Рафсона ля максимизации функции df/d(Batch) = 0, где f(Batch) = FLOPS / Batch.
Ключевые выводы:
Производительность матричных операций зависит от константных множителей, которые можно оптимизировать через низкоуровневые библиотеки (EML). Асимптотическая сложность GEMM:
Классический алгоритм: O(n^3).
Алгоритм Штрассена: O(n^2.81).
Константы в O(n^3) важнее асимптотики. Даже небольшое улучшение C дает значительный прирост (пример: 14.8x для BERT).
Баланс Роара: Если t_mem / t_calc >= 1, производительность упирается в память, а не в вычисления.
Суперлинейное ускорение (S_p > p) возможно только при кэшировании данных или неоптимальном однопоточном режиме.
Модель фон Неймана для утилизации:
Утилизация = (Тактовая_частота Эффективность_конвейера) / (Тактовая_частота Пиковая_пропускная_способность).
Рекомендации:
NM Card:
Использовать Batch=4 (эмпирический оптимум).
Добавить поддержку depthwise-сверток (для MobileNet).
IVA TPU:
Уменьшить t_mem через кэширование (например, STAGING-оптимизация).
Публиковать документацию по архитектуре.
Эльбрус:
Внедрить CSR (Compressed Sparse Row) для разреженных матриц. Сложность: O(nnz), где nnz — число ненулевых элементов.
Хотелось бы ссылку на научную статью и дополнительно техническую документацию как это всё запустить и воспроизвести, а железки найдём для воспроизведения.
В версии EML 2021 года
Не стесняйтесь потормошить поставщика -- закрутился тогда и не передал ответ компиляторщиков:
"Разреженную алгебру с тех пор поддержали, сейчас ещё тензоров добавим".
Как понимаю, в конце 2025 будет готово.
Адаптированные нейросетевые алгоритмы на отечественных процессорах