ARM (Linux)
تدعم جوليا بشكل كامل معالجات ARMv8 (AArch64)، وتدعم ARMv7 و ARMv6 (AArch32) مع بعض التحفظات. يوفر هذا الملف إرشادات عامة للتجميع، بالإضافة إلى تعليمات للأجهزة المحددة.
قائمة بـ known issues متاحة لـ ARM. إذا واجهت صعوبات، يرجى إنشاء مشكلة تتضمن الإخراج من cat /proc/cpuinfo
.
32-bit (ARMv6, ARMv7)
تم تجميع Julia بنجاح على عدة أنواع من أجهزة ARMv6 و ARMv7 التالية:
- ARMv7 / Cortex A15 سامسونج كروم بوك تعمل بنظام أوبونتو لينكس تحت كروتون؛
- Raspberry Pi
- Odroid.
تتطلب جوليا على الأقل مجموعات التعليمات 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)
جوليا متوقعة للعمل والبناء على معالجات ARMv8. يجب اتباع build instructions. تتوقع جوليا أن يكون لديها حوالي 8 جيجابايت من الذاكرة العشوائية أو التبديل مفعل لبناء نفسها.
Known issues
بدءًا من Julia v1.10، JITLink مفعل تلقائيًا على هذه البنية لجميع أنظمة التشغيل عند الربط بـ LLVM 15 أو إصدارات لاحقة. بسبب bug in LLVM memory manager، قد تؤدي الأحمال غير التافهة إلى توليد عدد كبير جدًا من خرائط الذاكرة التي يمكن أن تتجاوز في نظام Linux الحد الأقصى لخرائط الذاكرة (mmap
) المحدد في الملف /proc/sys/vm/max_map_count
، مما يؤدي إلى خطأ مثل
JIT session error: Cannot allocate memory
يجب أن يحدث هذا، اطلب من مسؤول النظام زيادة حد خرائط الذاكرة على سبيل المثال باستخدام الأمر
sysctl -w vm.max_map_count=262144