ARM (Linux)

Julia полностью поддерживает процессоры ARMv8 (AArch64) и с некоторыми оговорками поддерживает ARMv7 и ARMv6 (AArch32). Здесь приводятся общие рекомендации по компиляции, а также инструкции для конкретных устройств.

Доступен список известных проблем для ARM. Если у вас возникнут трудности, создайте заявку и приведите вывод из файла cat /proc/cpuinfo.

32-разрядные (ARMv6, ARMv7)

Julia успешно компилируется на нескольких вариантах следующих устройств ARMv6 и ARMv7:

  • ARMv7 / Cortex A15 Samsung Chromebooks под управлением Ubuntu Linux с Crouton;

  • Raspberry Pi;

  • Odroid.

Для Julia требуются как минимум наборы инструкций armv6 и vfpv2. Рекомендуется использовать armv7-a. armv5 или настройки для программной работы с плавающей запятой не поддерживаются.

Raspberry Pi 1 / Raspberry Pi Zero

Если тип процессора ARM, используемого в Raspberry Pi, не определяется LLVM, необходимо явным образом задать целевую загрузку ЦП, добавив следующее в Make.user:

JULIA_CPU_TARGET=arm1176jzf-s

Для завершения сборки может потребоваться увеличить размер файла подкачки. Для этого отредактируйте файл /etc/dphys-swapfile, изменив строку:

CONF_SWAPSIZE=100

на:

CONF_SWAPSIZE=512

перед перезапуском службы файла подкачки:

sudo /etc/init.d/dphys-swapfile stop
sudo /etc/init.d/dphys-swapfile start

Raspberry Pi 2

Тип процессора ARM, используемого в Raspberry Pi 2, не определяется LLVM. Явным образом задайте целевую загрузку ЦП, добавив следующее в Make.user:

JULIA_CPU_TARGET=cortex-a7

В зависимости от конкретного компилятора и дистрибутива может произойти сбой сборки из-за неподдерживаемой встроенной сборки. В этом случае добавьте MCPU=armv7-a в Make.user.

AArch64 (ARMv8)

Сборка Julia успешно выполняется на следующих устройствах ARMv8:

Для компиляции на устройстве ARMv8-A требуется настроить Make.user следующим образом:

MCPU=armv8-a

nVidia Jetson TX2

Julia собирается и работает на платформе nVidia Jetson TX2 с минимальными изменениями конфигурации.

После настройки Make.user в соответствии с инструкциями AArch64 в этом документе следуйте общим инструкциям по сборке. Большинство зависимостей сборки, указанных в инструкциях, устанавливаются конфигурацией по умолчанию, прошитой с помощью Jetpack 3.0. Остальные инструменты можно установить, выполнив следующую команду:

sudo apt-get install gfortran wget cmake

Полная параллельная сборка, включая LLVM, завершится примерно за два часа. Все тесты пройдены, а функциональность CUDA доступна, например, через CUDAdrv.