Перейти к содержанию
    

ARM процессор в качестве DSP

В свете последних событий многим приходится искать замену микросхем ЦОС, наиболее перспективным выглядит направление в сторону китайских поставщиков(хотя конечно с поставкой будет легче, но нет 100% гарантий).

Для "не больших" задач выбор пал на такие бренды как allwinner amlogic, в составе этих микропроцессоров есть блоки GPU, которые можно использовать для мат задач.

Что думаете по данной теме?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

30 minutes ago, LexaryStyle said:

amlogic

Quote

Amlogic Inc. (sometimes stylized AMLogic) is a fabless semiconductor company that was founded on March 14, 1995 in Santa Clara, California

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 часа назад, LexaryStyle сказал:

Для "не больших" задач выбор пал на такие бренды как allwinner amlogic, в составе этих микропроцессоров есть блоки GPU, которые можно использовать для мат задач.

А как их GPU можно использовать для DSP вычислений? Для них есть что-то вроде OpenCL/CUDA? Где про это можно почитать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

OpenCL поддерживается на Mali-T6xx/T7xx, G31 и т.п. То есть на не совсем копеечных процессорах.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 hours ago, arhiv6 said:

А как их GPU можно использовать для DSP вычислений? Для них есть что-то вроде OpenCL/CUDA? Где про это можно почитать?

а какая принципиальная разница opencl/cuda или шэйдер на glsl.

OpenGL(ES) какой-нибудь уж всяко есть, даже у mali4x

да даже без compute shader, с отрисовыванием в буфер единственного пустого прямоугольника нужного размера и параллельным выполнением NxM раз программы для каждого пикселя, ну только вместо blockIdx будет gl_FragCoord.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

для небольших задач может быть многоядерный арм лучше чем gpu, особенно если большой объём данных и не очень большой объём вычислений, всё надо тестировать конечно. OpenCV хорошо работает для DSP задач в том числе и для 1D - использовал его для RPi-3B+

Изменено пользователем gridinp

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

https://web.eece.maine.edu/~vweaver/group/green_machines.html

написано 5Гфлопсов у 3В+ с 4х ядер, не знаю на сколько там openBLAS, которым тестировали оптимизирован со всякими NEON расширениями, но даже у самой убогой mali4xx от 10Гфлопсов одинарной точности обещают.

и 30Гфлопсов для GPU Rpi3 Broadcom VideoCore VI https://www.cpu-monkey.com/en/igpu-broadcom_videocore_vi-221

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Грузить сам процессор не удобно, так как он занят "верхнем уровнем", openCL(pyOpenCL) корка в ARMe вроде как решает задачи вычисления на ГПУ. Надо пробовать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

07.04.2022 в 00:26, _pv сказал:

OpenGL(ES) какой-нибудь уж всяко есть, даже у mali4x

да даже без compute shader, с отрисовыванием в буфер единственного пустого прямоугольника нужного размера и параллельным выполнением NxM раз программы для каждого пикселя, ну только вместо blockIdx будет gl_FragCoord.

Может проще NEON для таких задач использовать? Он есть в каждом ядре АРМ, например берем allwinner H2(3), имеем 4 ядра+4 NEON-а и вполне неплохо все "параллелится")))

08.04.2022 в 02:06, LexaryStyle сказал:

pyOpenCL

Ну если нагрузить его интерпретаторами, на которых еще и сложный код крутится, а потом начинать какую-то оптимизацию DSP на тех же ресурсах, то да, это как "переливать из пустого в порожнее"...  Прежде всего надо код оптимизировать и выкинуть все интерпретаторы...

Ну или разделяйте ядра, часть на DSP, часть на всякие "линуксопитоны")))

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 minute ago, mantech said:

Может проще NEON для таких задач использовать? Он есть в каждом ядре АРМ, например берем allwinner H2(3), имеем 4 ядра+4 NEON-а и вполне неплохо все "параллелится")))

кому как, может и проще, но это ж интринсинки и всё ручками придётся, да и переносимость.

а если смотреть на тупо циферки гфлопсов то у cpu их всё равно раз 5-10 будет меньше чем у gpu,

понятно что синтетические тесты, и на самом деле несколько хуже, но всё-таки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, mantech said:

Ну если нагрузить его интерпретаторами, на которых еще и сложный код крутится, а потом начинать какую-то оптимизацию DSP на тех же ресурсах, то да, это как "переливать из пустого в порожнее"...  Прежде всего надо код оптимизировать и выкинуть все интерпретаторы...

Ну или разделяйте ядра, часть на DSP, часть на всякие "линуксопитоны")))

 

Суть не в жирных интерпретаторах, это уже уровень оптимизации кода. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 часа назад, _pv сказал:

кому как, может и проще, но это ж интринсинки и всё ручками придётся, да и переносимость.

а если смотреть на тупо циферки гфлопсов то у cpu их всё равно раз 5-10 будет меньше чем у gpu,

Сам конечно не пробовал, чисто теория, но несколько параллельно работающих неонов вряд-ли будут медленнее гпу, т.к. все упрется в шину памяти, да и гпу у дешевых процов далеко не топовое...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, mantech said:

Сам конечно не пробовал, чисто теория, но несколько параллельно работающих неонов вряд-ли будут медленнее гпу, т.к. все упрется в шину памяти, да и гпу у дешевых процов далеко не топовое...

да я сам сварщик не настояший, только с glsl игрался немного.

и что там с плавающей запятой у neonа не очень знаю, кучу 8ми битных циферок за раз в 128битном регисте сложить перемножить это одно.

если куча данных и всё упирается в память то конечно без разницы,

но если нет, 10ГФлопсов одиночной точности даже на самый убогий mali 400 вроде бы обещают, а вот получить столько даже с четырёх ~1ГГц ядер, пусть и в пару раз ускоренных с simd расширениями, может и не получиться, даже теоретически.

тем более что процессор у ТСа уже чем-то занят, а gpu ещё нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Странно что еще никто не отписался о результатах таких экспериментов, вроде бы логичный интерес использовать ГПУ. По части пропускной способности памяти, таки да, есть такая проблема, загружать выгружать реалтайм данные может быть слишком затратно, но все же, в цифрах, интересно например посмотреть на загрузку ГПУ при работе с FIR с большим количеством коэфф-в(как вариант) и сравнить с NEON.

Изменено пользователем LexaryStyle

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...