gcc; рука64; аарх64; нераспознанный параметр командной строки '-mfpu=neon'

Я получил ошибку компиляции:

нераспознанный параметр командной строки '-mfpu=neon'*
при попытке компиляции с флагом -mfpu=neon. На самом деле, любые варианты «mfpu», которые я пробовал, не увенчались успехом. Однако в документации этот флаг упоминается, поэтому он должен быть действительным.

Что не так с этим ключом? Как я могу сказать компилятору использовать NEON?

Используются Linaro GNU aarch64 linux tools 4.8.

Спасибо.


person user3124812    schedule 24.04.2015    source источник
comment
Где в документации это упоминается? Я не вижу его там (но я вижу соответствующую функцию SIMD...)   -  person Notlikethat    schedule 24.04.2015
comment
@Notlikethat См. gcc.gnu.org/onlinedocs/gcc/ARM-Options.html   -  person Severin Pappadeux    schedule 24.04.2015
comment
@SeverinPappadeux Это для серверной части ARM, а не для AArch64. Ссылка на параметр -fpu здесь будет равнозначна актуально как то ;)   -  person Notlikethat    schedule 24.04.2015
comment
@Notlikethat хороший улов, для AArch64 такой опции нет   -  person Severin Pappadeux    schedule 24.04.2015
comment
@Notlikethat, да, это так. Я также смотрел в ARM-вариантах. Если вы добавите свой ответ, как ответ, а не комментарий, я отмечу его как правильный. Таким образом, вы получите учетные данные для помощи. Большое спасибо :)   -  person user3124812    schedule 25.04.2015


Ответы (2)


Расширенный SIMD (также известный как NEON) является обязательным для AArch64, поэтому не требуется никаких параметров командной строки, чтобы указать компилятору использовать NEON.

Если вы хотите включить автоматическую оптимизацию векторизации, чтобы компилятор автоматически использовал инструкции NEON, скомпилируйте с помощью -O3 или -O2 -ftree-vectorize.

Бэкэнды AArch64 и ARM полностью разделены в gcc. Серверная часть ARM нацелена только на традиционные 32-битные наборы инструкций ARM (ARM, Thumb, Thumb-2). Это отличается от ситуации с x86, где генерация 32-битного и 64-битного кода объединена в один сервер GCC.

person Charles Baylis    schedule 27.04.2015

Перейдите в файл /tensorflow/contrib/lite/kernels/internal/BUILD, удалите -mfpu=neon и все готово. от:

NEON_FLAGS_IF_APPLICABLE = select({
    ":arm": [
        "-O3",
        "-mfpu=neon",
    ],

to:

NEON_FLAGS_IF_APPLICABLE = select({
    ":arm": [
        "-O3",

    ],
person Do Trung Dung Zung    schedule 18.07.2018