Вопрос или проблема
У меня есть исходные коды с использованием встроенных функций ARM Neon (т.е. arm_neon.h) для ускорения арифметики в конечных полях. На Raspberry Pi я компилирую их с помощью gcc с такими аргументами:
-DARM_NEON64 -mfloat-abi-hard -mfpu=neon -O3
Теперь я хочу протестировать коды на Macbook Pro (M3 Max). Я никогда раньше не использовал clang, и как ни странно, я обнаружил, что очень трудно найти рабочую команду компиляции для этой задачи. Может кто-то предоставить подсказки по этому вопросу? Огромное спасибо. (без Xcode)
Ответ или решение
Для компиляции кода с использованием ARM Neon intrinsics (то есть использования заголовочного файла arm_neon.h
) на MacBook Pro с чипом M3, воспользуемся компилятором clang
. Если у вас нет установленного Xcode, вы все равно сможете установить инструменты командной строки, которые включают необходимый компилятор.
Вот шаги, которые нужно выполнить:
-
Установите инструменты командной строки:
Откройте терминал и введите следующую команду для установки необходимых инструментов:xcode-select --install
-
Создайте ваш исходный код:
Убедитесь, что ваш исходный код с использованием ARM Neon intrinsics сохранен в файле, например,neon_example.c
. -
Компиляция кода с использованием clang:
Используйте следующую команду для компиляции вашего кода с нужными флагами:clang -target arm64-apple-macos11 -DARM_NEON64 -O3 -o neon_example neon_example.c
-target arm64-apple-macos11
: указывает компилятору, что вы компилируете для 64-битной архитектуры ARM, начиная с macOS 11 (Big Sur), которая поддерживает M1 и выше, включая M3.-DARM_NEON64
: определяет макрос для использования ARM Neon.-O3
: включает оптимизации для повышения производительности.-o neon_example
: указывает имя выходного файла.
-
Запуск скомпилированного кода:
После успешной компиляции вы можете запустить скомпилированный файл:./neon_example
Если при выполнении этих шагов возникнут ошибки или предупреждения, их следует внимательно прочитать — они могут помочь вам понять, что именно вызывает проблему. Также убедитесь, что ваш код действительно корректен и совместим с используемым компилятором и целевой архитектурой.
Теперь вы готовы к тестированию ваших кодов с использованием ARM Neon intrinsics на MacBook Pro с M3. Если у вас будут дополнительные вопросы или проблемы, не стесняйтесь обращаться за помощью.