Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Эксперименты с GPU PowerVR на Orange Pi 4 Pro

Исследование вычислительных возможностей встроенного GPU PowerVR BXM-4-64 MC1 в SoC Allwinner A733. Основная задача — понять, можно ли ускорить GEMM и Whisper Base относительно восьмиядерного CPU платы через Vulkan, OpenCL и vendor GLES.

Итог: лучший воспроизводимый результат GEMM составил около 37 GFLOP/s на gemm_i8x8h_direct, однако полный GPU-encoder Whisper Base оказался медленнее CPU. Для этой платы GPU лучше подходит для длительных регулярных задач над изображениями и видео, чем для чувствительного к задержкам transformer inference.

Ключевые результаты

Тест Результат
Лучший GEMM ~37 GFLOP/s
GEMM с fp32-аккумуляцией 26.5–27 GFLOP/s
Буферный GEMM 24.9 GFLOP/s
Пик ALU fp32 60.6 GFLOP/s
Пик ALU fp16 111.5 GFLOP/s
Память GPU, device-resident 5.8–6.1 GB/s
Whisper Base, полный GPU-encoder ~5.48 с
Whisper Base, полный запуск с GPU-encoder ~13.32 с

Чистая fp16-арифметика ускоряется только с -cl-unsafe-math-optimizations. Лучший GEMM использует RGBA16F image2d, sampler-конверсию, тайл 8×8 на поток и fp16-аккумуляторы. Подробнее — в русском обзоре и полном лабораторном журнале на английском.

Структура репозитория

Путь Содержимое
src/opencl/ OpenCL GEMM, ALU и memory-bandwidth тесты
src/vulkan/ Vulkan GEMM и pipeline probes
src/gles/ vendor GLES compute и texture-format probes
kernels/vulkan/ GLSL compute kernels
profiling/ OpenCL kernels, UniFlex/USC disassembly и профили
experiments/ проверки binary API и перехвата UniFlex
data/ сырые CSV и краткие сводки HWPerf
config/apphints/ исследованные настройки PowerVR DDK
scripts/ сбор HWPerf на плате
docs/ выводы, план и исходный журнал экспериментов

Окружение

  • Orange Pi 4 Pro, Allwinner A733;
  • PowerVR BXM-4-64 MC1;
  • PowerVR DDK 24.2@6603887;
  • ядро 6.6.98-ftrace-sun60iw2;
  • максимальная проверенная частота GPU — 1.008 GHz.

Исходники рассчитаны на vendor OpenCL/Vulkan/GLES userspace. Библиотеки DDK, прошивки, модели Whisper и аудиофайлы в репозиторий не входят. Пути /home/orangepi/... в скриптах являются значениями по умолчанию и при необходимости меняются через переменные окружения или непосредственно в скрипте.

Важные оговорки

  • Результаты относятся именно к указанной плате и версии DDK.
  • Сгенерированные BEXEL/HW .bin не публикуются: в контейнеры попадают строки сборочного окружения vendor-компилятора, включая внутренние служебные адреса. Исходники для воспроизведения дифференциального теста сохранены.
  • CSV в data/ сохранены как первичные замеры для повторного анализа.
  • Лицензия пока не указана; до её добавления стандартные права на код сохраняются за автором.

Документация

About

Исследование вычислительных возможностей встроенного GPU PowerVR BXM-4-64 MC1 в SoC Allwinner A733. Основная задача — понять, можно ли ускорить GEMM и Whisper Base относительно восьмиядерного CPU платы через Vulkan, OpenCL и vendor GLES.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages