Библиотеки Android NEON - PullRequest
       19

Библиотеки Android NEON

1 голос
/ 31 июля 2011

Существует ли какая-либо другая бесплатная векторная библиотека, оптимизированная для неона, кроме математики? Я хотел бы получить преимущество неона в моем коде, у меня много объектов, и я делаю много простой векторной математики, например, добавление векторов, умножение, расставление их точек, это 3-мерные векторы, но если бы я мог сделать это много быстрее 2d тоже должно быть в порядке, вопрос в том, стоит ли использовать неон? например, давайте возьмем 100000 очков, мне нужно рассчитать их движение, столкновения и т. д. В настоящее время я использую свою собственную математику, основанную на встроенных функциях, скажем, что я хотел бы использовать свою гипотетическую неоновую библиотеку с матрицами, в настоящее время я Я использую GLM для этого, и это нормально, но может ли это быть быстрее? Преимущество в скорости между arm-abi и arm7-abi в ndk в моем случае составляет около 30 процентов, может ли неон быть быстрее или, возможно, мой код переведен в neon во время компиляции?

Ответы [ 3 ]

2 голосов
/ 04 августа 2011

Вы можете проверить eigen .Он имеет специальный код, который активируется при активации поддержки неоновых команд.

0 голосов
/ 18 ноября 2012

Как кто-то еще упомянул, вы должны взглянуть на Эйгена, это, вероятно, достаточно хорошо для вас.Но если вам нужна полная производительность (намного лучше, чем 30%, больше, чем 300%), вы должны сами использовать код NEON и убедиться, что весь ваш внутренний цикл полностью написан с помощью NEON (а не кода CPU или VFP).

Если вы просто NEON оптимизируете часть своего цикла вместо всего цикла, вы получите серьезные штрафы, и поэтому код NEON, возможно, всего на 30% быстрее или, возможно, даже медленнее, чем обычный код C.Но полный цикл NEON может дать вам ускорение на 300 - 2000%!

Если вы разрабатываете для ARM Cortex-A9, тогда NEON C Intrinsics должно быть достаточно хорошим, но для устройств ARM Cortex-A8 вы обычнонужен NEON ассемблерный код для полной производительности.Я даю еще немного информации о том, как NEON оптимизировать весь ваш цикл, в "http://www.shervinemami.info/armAssembly.html"

0 голосов
/ 31 июля 2011

Код скомпилирован для NEON, если целевая архитектура поддерживает его, а именно, если он скомпилирован для armeabi-v7a.Для этого просто добавьте armeabi-v7a в список целей в файле Application.mk вашего приложения.

...