Всем привет,
недавно в руки попала платка с оллвинером pcduino.com - многое сразу понравилось, как-то удобно что и компилишся и работаешь на одной и той же платформе и все интерфейсы под рукой есть и драйверы худо бедно почти без танцев с бубном заработали.
Есть правда вопрос по производительности процессора на плавающей точке. У меня есть несколько тестов, которые позволяют измерить достигаемую производительность с учетом того, что данных мало (все в регистрах и пайплайнится хорошо), данных чуть больше и все в кешу, данных много и они линейно или случайным образом индексируются в общей памяти.
К сожалению, результаты меня огорчили.
Я смог получить около 60МФлоп/с на регистрах, 20МФлоп/с (линейный доступ) 2МФлоп/с (случайный доступ) при работе с общей памятью. Разницы одинарная или двойная точность почти не видно, есть, но не в два раза, а примерно в 20-30%. Сильно настораживает, что на регистрах получается только 60МФлоп/с, хотя Джек Донгарра в своем докладе прошлой осенью писал, что де оллвинеры почти ГФлоп/с показывают.
Перепробовал кучу опций компиляции, похоже, что -Ofast без ничего другого показывает самые лучшие результаты, пробовал и неон включать, и vf*v3 но только хуже стало.
В связи с этим, возникают вопросы
1. какой реально достижимый пик на этом процессоре на плавающей точке, 2. может ли кто-то поделиться правильными опциями компиляции и примером в несколько строк где бы серьезно больше 60МФлоп/с получалось бы?
Спасибо
ИИВ
|