реклама на сайте
подробности

 
 
> Какая производительность на плавающей точку у AllWinner A10?, Сколько пик, и сколько достигается?
iiv
сообщение May 15 2013, 17:30
Сообщение #1


вопрошающий
*****

Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436



Всем привет,

недавно в руки попала платка с оллвинером pcduino.com - многое сразу понравилось, как-то удобно что и компилишся и работаешь на одной и той же платформе и все интерфейсы под рукой есть и драйверы худо бедно почти без танцев с бубном заработали.

Есть правда вопрос по производительности процессора на плавающей точке. У меня есть несколько тестов, которые позволяют измерить достигаемую производительность с учетом того, что данных мало (все в регистрах и пайплайнится хорошо), данных чуть больше и все в кешу, данных много и они линейно или случайным образом индексируются в общей памяти.

К сожалению, результаты меня огорчили.

Я смог получить около 60МФлоп/с на регистрах, 20МФлоп/с (линейный доступ) 2МФлоп/с (случайный доступ) при работе с общей памятью. Разницы одинарная или двойная точность почти не видно, есть, но не в два раза, а примерно в 20-30%. Сильно настораживает, что на регистрах получается только 60МФлоп/с, хотя Джек Донгарра в своем докладе прошлой осенью писал, что де оллвинеры почти ГФлоп/с показывают.

Перепробовал кучу опций компиляции, похоже, что -Ofast без ничего другого показывает самые лучшие результаты, пробовал и неон включать, и vf*v3 но только хуже стало.

В связи с этим, возникают вопросы

1. какой реально достижимый пик на этом процессоре на плавающей точке,
2. может ли кто-то поделиться правильными опциями компиляции и примером в несколько строк где бы серьезно больше 60МФлоп/с получалось бы?

Спасибо

ИИВ
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 8)
DASM
сообщение May 15 2013, 18:46
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



60 mflops это мало?? Это же не DSP.Почему Вы решили что будет больше?

Хотите — могу завтра на omap44 прогнать, только код теста дайте.
Ааа, понял.. Это же результаты Gpu соопроцессора.. Вот тут что то сравнивали, правда я не понял как это запускать Сам только начал с сопроцессорами разбираться тут тесты ГПУ
Go to the top of the page
 
+Quote Post
Самурай
сообщение May 15 2013, 19:39
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 468
Регистрация: 4-03-05
Пользователь №: 3 066



Цитата(iiv @ May 15 2013, 20:30) *
...
Я смог получить около 60МФлоп/с на регистрах, 20МФлоп/с (линейный доступ) 2МФлоп/с (случайный доступ) при работе с общей памятью. Разницы одинарная или двойная точность почти не видно, есть, но не в два раза, а примерно в 20-30%.
...
Перепробовал кучу опций компиляции, похоже, что -Ofast без ничего другого показывает самые лучшие результаты, пробовал и неон включать, и vf*v3 но только хуже стало.

В связи с этим, возникают вопросы

1. какой реально достижимый пик на этом процессоре на плавающей точке,
2. может ли кто-то поделиться правильными опциями компиляции и примером в несколько строк где бы серьезно больше 60МФлоп/с получалось бы?


Не знаю, поможет или нет, но вот тут пишут, что включать надо одновременно и VFPv3 и neon опции. И еще до кучи с полдюжины других условий надобно соблюсти. А так, похоже, что работает только VFP сопроцессор, у него как раз 10...30 тактов на команду уходит.
Go to the top of the page
 
+Quote Post
iiv
сообщение May 16 2013, 08:01
Сообщение #4


вопрошающий
*****

Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436



Спасибо всем за отклики!

Цитата(DASM @ May 16 2013, 00:46) *
60 mflops это мало?? Это же не DSP.Почему Вы решили что будет больше?


Да, так как, например, мой лаптоп показывает под 100ГФлопс на одинарной и 50ГФлоп/с на двойной точности, и от таблеточного железа хочется хотя бы гигафлоп.

Вот здесь говорят, что на однопроцессорном 3-ем omapе можно получить гигафлоп на одинарной и 50МФлоп/с на двойной точности.

Цитата(DASM @ May 16 2013, 00:46) *
Хотите — могу завтра на omap44 прогнать, только код теста дайте.


тест собственно там же, только надо вначале поставить ATLAS и с ним скомпилить маленький тест, правда установка атласа у меня на аоллвинере заняла больше дня, и, во время инсталляции, желательно на железке ничего не делать, поэтому повторить может оказаться довольно сложно.

Цитата(DASM @ May 16 2013, 00:46) *
Ааа, понял.. Это же результаты Gpu соопроцессора.. Вот тут что то сравнивали, правда я не понял как это запускать Сам только начал с сопроцессорами разбираться тут тесты ГПУ


неее, боюсть, на ГПУ можно еще на порядок больше получить.

Про то, что надо и неон и вфпв3 включать видел и уже пробовал, пока это результаты не улучшало, похоже, ГНУ компилер сам это знает, если -Ofast написать.
Go to the top of the page
 
+Quote Post
sasamy
сообщение May 16 2013, 09:24
Сообщение #5


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(iiv @ May 16 2013, 12:01) *
Вот здесь говорят, что на однопроцессорном 3-ем omapе можно получить гигафлоп на одинарной и 50МФлоп/с на двойной точности.


Ключевой момент производительности cortex-a8 на плавучке c двойной точностью

Цитата
non-pipelined VFP floating-point unit of the A8


а NEON поддерживает только одинарную точность

Цитата
неее, боюсть, на ГПУ можно еще на порядок больше получить.


По-моему для mali400 нет поддержки OpenCL или какой-либо другой поддержки GPGPU
Go to the top of the page
 
+Quote Post
iiv
сообщение May 16 2013, 09:56
Сообщение #6


вопрошающий
*****

Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436



Цитата(sasamy @ May 16 2013, 14:24) *
Ключевой момент производительности cortex-a8 на плавучке c двойной точностью

а NEON поддерживает только одинарную точность

простите, но я совсем не понял оба этих утверждения - вроде и то и то cortex-a8, и там и там мне хочется видк раз ееть гигафлопы хотя бы на одинарной точности, вроде неон как раз ее-то и поддерживает, так как мне получить гигафлопс на сингле на оллвинере?
Go to the top of the page
 
+Quote Post
sasamy
сообщение May 16 2013, 10:57
Сообщение #7


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(iiv @ May 16 2013, 13:56) *
простите, но я совсем не понял оба этих утверждения - вроде и то и то cortex-a8


вроде по-русски написал..

Цитата
мне хочется видк раз ееть гигафлопы хотя бы на одинарной точности, вроде неон как раз ее-то и поддерживает, так как мне получить гигафлопс на сингле на оллвинере?


может FAQ прочитать надо было перед сборкой ?
http://www.vesperix.com/arm/atlas-arm/faq/index.html

Цитата
ATLAS 3.10.0 includes architecture defaults for a Cortex A9 with the soft floating-point ABI (like Angstrom-based distributions and Ubuntu prior to 12.04). If you have a distribution using the hard floating-point ABI (like Ubuntu 12.04 or later), you can buld ATLAS 3.10.0 using

../configure -D c -DATL_ARM_HARDFP=1 -Si archdef 0 -Fa alg -mfloat-abi=hard

Note that mainline ATLAS releases like 3.10 have always ignored any floating point unit that does not conform to the IEEE 754 specification, so what you'll get if you do this is a BLAS library using the IEEE compliant VFP. If you need the somewhat higher single precision speed of NEON, you'll need to specifically tell ATLAS to use non-IEEE compliant routines, by using

../configure -D c -DATL_NONIEEE=1 -Si archdef 0

for the soft floating-point ABI, and

../configure -D c -DATL_NONIEEE=1 -D c -DATL_ARM_HARDFP=1 -Si archdef 0 -Fa alg -mfloat-abi=hard
if your distribution has a hard floating-point ABI.


Сообщение отредактировал sasamy - May 16 2013, 10:58
Go to the top of the page
 
+Quote Post
iiv
сообщение May 16 2013, 11:13
Сообщение #8


вопрошающий
*****

Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436



проблемка-то в том, что я как раз с опцией
Код
../configure -D c -DATL_NONIEEE=1 -D c -DATL_ARM_HARDFP=1 -Si archdef 0 -Fa alg -mfloat-abi=hard

и компилил... Еслиб все было бы так просто, не вопрошал бы sad.gif
Go to the top of the page
 
+Quote Post
sasamy
сообщение May 16 2013, 11:45
Сообщение #9


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(iiv @ May 16 2013, 15:13) *
проблемка-то в том, что я как раз с опцией
Код
../configure -D c -DATL_NONIEEE=1 -D c -DATL_ARM_HARDFP=1 -Si archdef 0 -Fa alg -mfloat-abi=hard

и компилил... Еслиб все было бы так просто, не вопрошал бы sad.gif


Пока что только одна мысль - проверьте включена ли поддержка NEON в ядре (выполните в директории с исходниками ядра)

Цитата
$ grep CONFIG_NEON .config
CONFIG_NEON=y


надо экспериментировать, чтобы понять что там происходит - снаскоку не могу сказать..

Сообщение отредактировал sasamy - May 16 2013, 11:46
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 21:59
Рейтинг@Mail.ru


Страница сгенерированна за 0.01427 секунд с 7
ELECTRONIX ©2004-2016