Я использую процессор Cortex-A8, и я не понимаю, как использовать флаг -mfpu
.ARM Cortex-A8: Как использовать как NEON, так и vfpv3
На Cortex-A8 есть оба VFPv3 и неоновых сопроцессоров. Раньше я не зная, как использовать неон, поэтому я использовал только
gcc -marm -mfloat-abi=softfp -mfpu=vfpv3
Теперь я понял, как SIMD процессоры работают, и я написал определенный код, используя NEON встроенных функций. Для того, чтобы использовать неоновую сопроцессор теперь мой флаг -mfpu должен измениться на -mfpu=neon
, поэтому мой компилятор командной строки выглядит следующим образом
gcc -marm -mfloat-abi=softfp -mfpu=neon
Теперь, значит ли это, что мой vfpv3
не используется больше? У меня много кода, который не использует NEON, эти части не используют vfpv3
.
Если и неоновые, и vfpv3 все еще используются, у меня нет проблем, но если используется только один из них, как я могу использовать оба этих параметра?
Igor У меня есть только значения точности с плавающей запятой. В самом деле, я вижу много f-инструкций (fadds, fsitos), поэтому я думаю, что инструкции vfp все еще выдаются компилятором. – HaggarTheHorrible
Несвязанный вопрос, знаете ли вы, что означает процессор с двумя проблемами? Cortex-A8 - это двухпроцессорный процессор, что это значит? Можете ли вы указать мне на какие-либо ссылки? Мой поиск не был настолько продуктивным. – HaggarTheHorrible
Vikram, Coretex A8 - это двухпроцессорный процессор. Это означает (по-разному), что он может делать некоторые или все из 1) декодировать и выдавать за невыполнение порядка двух команд за такт, 2) выполнять две команды с такой очередью за такт и/или 3) он может удалить два таких результаты за часы. Другими словами, в лучших условиях он может выполнять две инструкции за такт, поддерживаемые. Лучшие условия возникают только в случае отсутствия промахов в кеше, неверных прогнозов ветвей и т. Д. –