FPGA SDK لـ OpenCL
دليل المستخدم
UG-OCL009
2017.05.08
آخر تحديث لمجموعة Intel® Quartus® Prime Design Suite: 17.0
يشترك
إرسال التعليقات
Intel® FPGA SDK لـ OpenCL™ دليل نقل النظام الأساسي المرجعي لمجموعة أدوات تطوير Intel® Cyclone®V SoC
يصف دليل نقل النظام الأساسي المرجعي لمجموعة تطوير V SoC تصميم الأجهزة والبرامج للنظام الأساسي المرجعي لمجموعة أدوات تطوير Intel Cyclone V SoC (c5soc) للاستخدام مع مجموعة تطوير برامج Intel (SDK) لـ OpenCL وIntel ® FPGA SDK لـ OpenCL ™ Intel Cyclone ® . قبل البدء، توصي شركة Intel بشدة بالتعرف على محتويات المستندات التالية:
- دليل البدء لـ Intel FPGA SDK لـ OpenCLIntel Cyclone V SoC
- دليل مستخدم مجموعة أدوات Intel FPGA SDK لـ OpenCL Custom Platform Toolkit
- دليل جهاز Cyclone V، المجلد 3: الدليل المرجعي الفني لنظام المعالج الصلب بالإضافة إلى ذلك، راجع صفحة Cyclone V SoC Development Kit وSoC Embedded Design Suite في Altera webالموقع لمزيد من المعلومات. 1 2
انتباه: تفترض شركة Intel أن لديك فهمًا متعمقًا لدليل مستخدم مجموعة أدوات Intel FPGA SDK لـ OpenCL Custom Platform Toolkit. لا يصف دليل نقل النظام الأساسي المرجعي لمجموعة أدوات تطوير Cyclone V SoC استخدام مجموعة أدوات النظام الأساسي المخصص لـ SDK لتنفيذ نظام أساسي مخصص لمجموعة أدوات تطوير Cyclone V SoC. فهو يصف فقط الاختلافات بين دعم SDK في Cyclone V SoC Development Kit وIntel FPGA SDK العام لـ OpenCL Custom Platform.
روابط ذات صلة
- دليل البدء لـ Intel FPGA SDK لـ OpenCL Cyclone V SoC
- دليل مستخدم مجموعة أدوات Intel FPGA SDK لـ OpenCL Custom Platform Toolkit
- دليل جهاز Cyclone V، المجلد 3: الدليل المرجعي الفني لنظام المعالج الصلب
- صفحة Cyclone V SoC Development Kit وSoC Embedded Design Suite على Altera webموقع
- OpenCL وشعار OpenCL هما علامتان تجاريتان لشركة Apple Inc. تستخدمان بإذن من Khronos Group™.
- تعتمد Intel FPGA SDK لـ OpenCL على مواصفات Khronos المنشورة، وقد اجتازت عملية اختبار مطابقة Khronos. يمكن العثور على حالة المطابقة الحالية على www.khronos.org/conformance.
شركة إنتل. كل الحقوق محفوظة. تعد كلمات وشعارات Intel وشعار Intel وAltera وArria وCyclone وEnpirion وMAX وNios وQuartus وStratix علامات تجارية لشركة Intel Corporation أو الشركات التابعة لها في الولايات المتحدة و/أو البلدان الأخرى. تضمن Intel أداء منتجات FPGA وأشباه الموصلات الخاصة بها وفقًا للمواصفات الحالية وفقًا للضمان القياسي لشركة Intel، ولكنها تحتفظ بالحق في إجراء تغييرات على أي منتجات وخدمات في أي وقت دون إشعار. لا تتحمل شركة Intel أي مسؤولية أو التزام ينشأ عن تطبيق أو استخدام أي معلومات أو منتج أو خدمة موصوفة هنا باستثناء ما تم الاتفاق عليه كتابيًا صراحةً من قبل شركة Intel. يُنصح عملاء Intel بالحصول على أحدث إصدار من مواصفات الأجهزة قبل الاعتماد على أي معلومات منشورة وقبل تقديم طلبات المنتجات أو الخدمات.
*قد يتم المطالبة بأسماء وعلامات تجارية أخرى باعتبارها ملكًا للآخرين.
1.1.1 متغيرات لوحة المنصة المرجعية لمجموعة أدوات تطوير Cyclone V SoC
يتضمن Intel FPGA SDK للنظام الأساسي المرجعي لمجموعة أدوات تطوير OpenCL Cyclone V SoC نوعين مختلفين من اللوحة.
- لوحة c5soc
توفر هذه اللوحة الافتراضية إمكانية الوصول إلى بنكي ذاكرة DDR. يمكن الوصول إلى HPS DDR من خلال كل من FPGA ووحدة المعالجة المركزية. لا يمكن الوصول إلى FPGA DDR إلا عن طريق FPGA. - لوحة c5soc_sharedonly
يحتوي متغير اللوحة هذا على اتصال HPS DDR فقط. لا يمكن الوصول إلى FPGA DDR. يعد متغير اللوحة هذا أكثر كفاءة في المساحة نظرًا لأنه يلزم وجود أجهزة أقل لدعم بنك ذاكرة DDR واحد. تعد لوحة c5soc_sharedonly أيضًا منصة جيدة للنماذج الأولية للوحة الإنتاج النهائية مع بنك ذاكرة DDR واحد.
لاستهداف متغير اللوحة هذا عند تجميع نواة OpenCL الخاصة بك، قم بتضمين خيار -board c5soc_sharedonly في أمر aoc الخاص بك.
لمزيد من المعلومات على -board خيار الأمر aoc، راجع Intel FPGA SDK لدليل برمجة OpenCL.
روابط ذات صلة
تجميع نواة للوحة FPGA محددة (–board )
1.1.2 محتوى النظام الأساسي المرجعي لمجموعة تطوير Cyclone V SoC
تتكون المنصة المرجعية لمجموعة أدوات تطوير Cyclone V SoC مما يلي fileق والأدلة:
File أو الدليل | وصف |
board_env.xml | لغة التوصيف الموسعة (XML) file الذي يصف c5soc إلى Intel FPGA SDK لـ OpenCL. |
linux_sd_card_image.tgz | صورة بطاقة فلاش SD مضغوطة file يحتوي على كل ما يحتاجه مستخدم SDK لاستخدام Cyclone V SoC Development Kit مع SDK. |
الذراع32 | الدليل الذي يحتوي على ما يلي: |
1.1.3 الميزات ذات الصلة بمجموعة تطوير Cyclone V SoC
تسلط القائمة التالية الضوء على مكونات وميزات Cyclone V SoC Development Kit ذات الصلة بـ Intel FPGA SDK لـ OpenCL:
- وحدة المعالجة المركزية ARM Cortex-A9 ثنائية النواة تعمل بنظام التشغيل Linux 32 بت.
- ناقل الواجهة الموسعة المتقدمة (AXI) بين HPS والنسيج الأساسي FPGA.
- وحدتا تحكم معززتان لذاكرة DDR، يتصل كل منهما بذاكرة DDR1 SDRAM بسعة 3 جيجابايت.
- يمكن الوصول إلى وحدة تحكم DDR واحدة لنواة FPGA فقط (أي FPGA DDR).
- يمكن الوصول إلى وحدة تحكم DDR الأخرى لكل من HPS وFPGA (أي HPS DDR). تسمح وحدة التحكم المشتركة هذه بمشاركة الذاكرة مجانًا بين وحدة المعالجة المركزية ونواة FPGA. - يمكن لوحدة المعالجة المركزية إعادة تكوين نسيج FPGA الأساسي.
1.1.3.1 أهداف وقرارات تصميم النظام الأساسي لمجموعة أدوات تطوير Cyclone V SoC المرجعية تبني شركة Intel تنفيذ النظام الأساسي المرجعي لمجموعة أدوات تطوير Cyclone V SoC على العديد من أهداف وقرارات التصميم. توصي Intel بأن تأخذ في الاعتبار هذه الأهداف والقرارات عند نقل هذا النظام الأساسي المرجعي إلى لوحة SoC FPGA الخاصة بك.
فيما يلي أهداف تصميم c5soc:
- توفير أعلى نطاق ترددي ممكن بين النواة الموجودة على FPGA ونظام (أنظمة) ذاكرة DDR.
- تأكد من أن العمليات الحسابية على FPGA (أي نواة OpenCL) لا تتداخل مع مهام وحدة المعالجة المركزية الأخرى التي قد تتضمن صيانة الأجهزة الطرفية.
- اترك أكبر قدر ممكن من موارد FPGA لحسابات kernel بدلاً من مكونات الواجهة.
فيما يلي قرارات التصميم عالية المستوى التي تمثل النتائج المباشرة لأهداف التصميم الخاصة بشركة Intel:
- يستخدم النظام الأساسي المرجعي فقط وحدات تحكم ذاكرة DDR الصلبة ذات التكوين الأوسع الممكن (256 بت).
- يتواصل FPGA مع وحدة تحكم الذاكرة HPS DDR مباشرة، دون إشراك ناقل AXI ومفتاح L3 داخل HPS. يوفر الاتصال المباشر أفضل عرض نطاق ممكن لـ DDR، ويمنع حسابات FPGA من التداخل مع الاتصالات بين وحدة المعالجة المركزية ومحيطها.
- لا يعد الوصول المباشر إلى الذاكرة المتناثرة (SG-DMA) جزءًا من منطق واجهة FPGA. بدلاً من نقل كميات كبيرة من البيانات بين أنظمة ذاكرة DDR، قم بتخزين البيانات في HPS DDR المشتركة. يعد الوصول المباشر إلى ذاكرة وحدة المعالجة المركزية بواسطة FPGA أكثر كفاءة من DMA. إنه يوفر موارد الأجهزة (أي منطقة FPGA) ويبسط برنامج تشغيل Linux kernel.
تحذير: يعد نقل الذاكرة بين نظام HPS DDR المشترك ونظام DDR الذي يمكن الوصول إليه فقط بواسطة FPGA بطيئًا للغاية. إذا اخترت ذلك
قم بنقل الذاكرة بهذه الطريقة، واستخدمها لكميات صغيرة جدًا من البيانات فقط. - يقوم المضيف والجهاز بنقل البيانات بخلاف DMA بين بعضهما البعض عبر جسر HPS-to-FPGA (H2F)، باستخدام منفذ 32 بت واحد فقط. والسبب هو أنه بدون DMA، يمكن لنواة Linux إصدار طلب قراءة أو كتابة واحد 32 بت فقط، لذلك ليس من الضروري أن يكون لديك اتصال أوسع.
- يرسل المضيف إشارات التحكم إلى الجهاز عبر جسر H2F (LH2F) خفيف الوزن.
نظرًا لأن إشارات التحكم من المضيف إلى الجهاز هي إشارات ذات نطاق ترددي منخفض، فإن جسر LH2F مثالي لهذه المهمة.
1.2 نقل النظام الأساسي المرجعي إلى لوحة SoC FPGA الخاصة بك
لنقل النظام الأساسي المرجعي لـ Cyclone V SoC Development Kit إلى لوحة SoC FPGA الخاصة بك، قم بتنفيذ المهام التالية:
- حدد ذاكرة DDR واحدة أو إصداري ذاكرات DDR من النظام الأساسي المرجعي c5soc كنقطة بداية لتصميمك.
- قم بتحديث مواقع الدبوس في ALTERAOCLSDKROOT/board/c5soc/ /top.qsf file، حيث ALTERAOCLSDKROOT هو المسار إلى موقع Intel FPGA SDK لتثبيت OpenCL، و هو اسم الدليل لمتغير اللوحة. الدليل c5soc_sharedonly مخصص لمتغير اللوحة المزود بنظام ذاكرة DDR واحد. دليل c5soc مخصص لمتغير اللوحة المزود بنظامي ذاكرة DDR.
- قم بتحديث إعدادات DDR لكتل HPS و/أو FPGA SDRAM في ALTERAOCLSDKROOT/board/c5soc/ /system.qsys file.
4. يجب أن تحقق جميع تصميمات اللوحة المفضلة Intel FPGA SDK لـ OpenCL إغلاقًا مضمونًا للتوقيت. على هذا النحو، يجب أن يكون موضع التصميم نظيفًا من حيث التوقيت. لنقل قسم لوحة c5soc (acl_iface_partition.qxp) إلى لوحة SoC FPGA، قم بتنفيذ المهام التالية:
للحصول على تعليمات مفصلة حول تعديل قسم اللوحة والحفاظ عليه، راجع Quartus
التجميع التزايدي الرئيسي لفصل التصميم الهرمي والمبني على الفريق من كتيب Quartus Prime Standard Edition.
أ. قم بإزالة acl_iface_partition.qxp من الدليل ALTERAOCLSDKROOT/board/c5soc/c5soc.
ب. قم بتمكين منطقة acl_iface_region LogicLock™ عن طريق تغيير أمر Tcl set_global_signment -name LL_ENABLED OFF -section_id acl_iface_region إلى set_global_signment -name LL_ENABLED ON -section_id acl_iface_region
ج. قم بتجميع نواة OpenCL للوحة الخاصة بك.
د. إذا لزم الأمر، قم بضبط حجم وموقع منطقة LogicLock.
ه. عندما تكون مقتنعًا بأن موضع تصميمك نظيف من حيث التوقيت، قم بتصدير هذا القسم كقسم acl_iface_partition.qxp Quartus Prime Exported Partition File.
كما هو موضح في قسم إنشاء تدفق التوقيت المضمون في AIntel FPGA SDK لدليل مستخدم مجموعة أدوات النظام الأساسي المخصص لـ OpenCL، عن طريق استيراد .qxp هذا file في التصميم عالي المستوى، فإنك تفي بمتطلبات توفير تصميم لوحة مع تدفق إغلاق توقيت مضمون.
للتعرف على العوامل التي قد تؤثر على جودة النتائج (QoR) للقسم الذي تم تصديره، راجع قسم اعتبارات الجودة العامة للنتائج لقسم اللوحة المصدرة في دليل مستخدم مجموعة أدوات النظام الأساسي المخصص لـ Intel FPGA SDK لـ OpenCL.
F. قم بتعطيل منطقة LogicLock acl_iface_region عن طريق إرجاع الأمر في الخطوة 2 مرة أخرى إلى set_global_signment -name LL_ENABLED OFF section_id acl_iface_region. - إذا كانت لوحة SoC FPGA الخاصة بك تستخدم دبابيس ومحيطات مختلفة لكتلة HPS، فأعد إنشاء أداة التحميل المسبق ومصدر شجرة الجهاز (DTS) file. إذا قمت بتغيير إعدادات وحدة تحكم الذاكرة HPS DDR، فأعد إنشاء أداة التحميل المسبق.
- قم بإنشاء صورة بطاقة فلاش SD.
- قم بإنشاء النظام الأساسي المخصص الخاص بك، والذي يتضمن صورة بطاقة فلاش SD.
- فكر في إنشاء إصدار بيئة تشغيل من النظام الأساسي المخصص لديك لاستخدامه مع Intel FPGA Runtime Environment (RTE) لـ OpenCL. لا يتضمن إصدار RTE للنظام الأساسي المخصص الخاص بك أدلة الأجهزة وصورة بطاقة فلاش SD. يتم تحميل هذا النظام الأساسي المخصص على نظام SoC FPGA للسماح بتشغيل التطبيقات المضيفة. في المقابل، يعد إصدار SDK للنظام الأساسي المخصص ضروريًا لـ SDK لتجميع نواة OpenCL.
نصيحة: يمكنك استخدام إصدار SDK لنظامك الأساسي المخصص لـ RTE. للحفظ
مساحة، قم بإزالة صورة بطاقة فلاش SD من إصدار RTE للنظام الأساسي المخصص الخاص بك. - اختبر النظام الأساسي المخصص الخاص بك.
راجع قسم اختبار تصميم الأجهزة في Intel FPGA SDK لدليل مستخدم مجموعة أدوات النظام الأساسي المخصص لـ OpenCL لمزيد من المعلومات.
روابط ذات صلة
- اختبار تصميم الأجهزة
- Quartus Prime التجميع التزايدي للتصميم الهرمي والقائم على الفريق
- إنشاء تدفق توقيت مضمون
- اعتبارات الجودة العامة للنتائج لقسم اللوحة المصدرة
1.2.1 تحديث منصة مرجعية منقولة
في الإصدار الحالي من النظام الأساسي المرجعي لـ Cyclone V SoC Development Kit، توجد كتلة HPS داخل القسم الذي يحدد كل المنطق غير النواة. ومع ذلك، لا يمكنك تصدير HPS كجزء من .qxp file. لتحديث نظام أساسي مخصص موجود قمت بتعديله من إصدار سابق لـ c5soc، قم بتنفيذ تدفق الحفاظ على QXP، وقم بتحديث صورة بطاقة فلاش SD للحصول على أحدث بيئة تشغيل، وتحديث board_spec.xml file لتمكين الهجرة التلقائية.
يقوم Altera® SDK لـ OpenCL الإصدار 14.1 وما بعده باستكشاف board_spec.xml file للحصول على معلومات اللوحة، وتنفيذ التحديثات التلقائية. لأنك قمت بتعديل
من خلال تنفيذ تدفق الحفاظ على QXP، يجب عليك تحديث board_spec.xml file إلى تنسيقه في الإصدار الحالي. تحديث file يسمح لـ SDK بالتمييز بين الأنظمة الأساسية المخصصة غير المحفوظة والأنظمة الأساسية المخصصة الحالية المستندة إلى QXP. راجع أتمتة النظام الأساسي المخصص للتوافق الأمامي في Intel FPGA SDK لدليل مستخدم مجموعة أدوات النظام الأساسي المخصص لـ OpenCL لمزيد من المعلومات.
- لتنفيذ تدفق الحفاظ على QXP في تصميم أجهزة Cyclone V SoC FPGA الذي تم نقله من إصدار سابق من c5soc، قم بتنفيذ الخطوات التالية لإنشاء قسم فرعي لاستبعاد HPS من .qxp file:
أ. قبل إنشاء قسم حول منطق غير النواة، قم بإنشاء قسم حول HPS في إعدادات .qsf Quartus Prime File.
على سبيل المثالampعلى:
# قم يدويًا بتقسيم المثيل الذي يقوم بتصميم مجموعة الإدخال/الإخراج المخصصة لـ HPS -name PARTITION_HIERARCHY borde_18261 - إلى “system:the_system|system_acl_iface:acl_iface|system_acl_iface_hps_0:hps_0|system_acl_iface_hps_0_hps_io:hps_io| system_acl_iface_hps_0_hps_io_border:border" -section_id "system_acl_iface_hps_0_hps_io_border:border"
# قم بتعيين القسم ليكون من نوع HPS_PARTITION لتتم معالجته بشكل صحيح بواسطة بقية Quartus
set_global_signment -اسم PARTITION_TYPE HPS_PARTITION -section_id "system_acl_iface_hps_0_hps_io_border:border"
quartus_cdb أعلى -c أعلى
–incremental_compilation_export=acl_iface_partition.qxp
–incremental_compilation_export_partition_name=acl_iface_partition
–incremental_compilation_export_post_synth=on
–incremental_compilation_export_post_fit=on
–incremental_compilation_export_routing=on
–incremental_compilation_export_flatten=off
بعد استبعاد HPS من القسم، يمكنك استيراد .qxp file وتجميع التصميم الخاص بك. - قم بتحديث صورة بطاقة فلاش SD بالإصدار الحالي من Intel FPGA RTE لـ OpenCL عن طريق تنفيذ المهام التالية:
أ. جبل file جدول التخصيص (FAT32) وموسع file أقسام النظام (ext3) في الصورة الموجودة كأجهزة استرجاع. للحصول على تعليمات مفصلة، راجع الخطوة 2 في إنشاء صورة بطاقة فلاش SD.
ب. في الدليل /home/root/opencl_arm32_rte، قم بإزالة ملف fileمن الإصدار السابق من RTE.
ج. قم بتنزيل الإصدار الحالي من RTE وفك ضغطه في الدليل /home/root/opencl_arm32_rte.
د. في ال /driver/version.h file للنظام الأساسي المخصص لديك، قم بتحديث تعيين ACL_DRIVER_VERSION إلى . (على سبيل المثالample، 16.1.x، حيث 16.1 هو إصدار SDK، وx هو إصدار برنامج التشغيل الذي قمت بتعيينه).
ه. إعادة بناء برنامج التشغيل.
F. احذف مجلد (مجلدات) الأجهزة الخاصة بالنظام الأساسي المخصص لديك. انسخ النظام الأساسي المخصص مع برنامج التشغيل المحدث إلى الدليل /home/root/opencl_arm_rte/board.
ز. انسخ ملف Altera.icd file من الدليل /home/root/opencl_arm32_rte وإضافته إلى الدليل /etc/OpenCL/vendors.
ح. قم بإلغاء تحميل الصورة الجديدة واختبارها. للحصول على تعليمات مفصلة، راجع الخطوات من 8 إلى 11 في إنشاء صورة بطاقة فلاش SD.
روابط ذات صلة
- إنشاء صورة لبطاقة فلاش SD في الصفحة 14
لديك أيضًا خيار إنشاء صورة بطاقة فلاش SD جديدة. - أتمتة النظام الأساسي المخصص للتوافق الأمامي
1.3 دعم البرامج للذاكرة المشتركة
الذاكرة الفعلية المشتركة بين FPGA ووحدة المعالجة المركزية هي الذاكرة المفضلة لنواة OpenCL التي تعمل على SoC FPGAs. نظرًا لأن FPGA يصل إلى الذاكرة الفعلية المشتركة، بدلاً من الذاكرة الظاهرية المشتركة، فإنه لا يمكنه الوصول إلى جداول صفحات وحدة المعالجة المركزية التي تقوم بتعيين العناوين الافتراضية للمستخدم إلى عناوين الصفحات الفعلية.
فيما يتعلق بالأجهزة، تصل نواة OpenCL إلى الذاكرة الفعلية المشتركة من خلال الاتصال المباشر بوحدة التحكم في الذاكرة الصلبة HPS DDR. فيما يتعلق بالبرنامج، يتضمن دعم الذاكرة الفعلية المشتركة الاعتبارات التالية:
- تطبيقات البرامج النموذجية لتخصيص الذاكرة على وحدة المعالجة المركزية (على سبيل المثالample، وظيفة malloc () لا يمكنها تخصيص منطقة ذاكرة قد يستخدمها FPGA.
تكون الذاكرة التي تخصصها الدالة malloc() متجاورة في مساحة عنوان الذاكرة الظاهرية، ولكن من غير المحتمل أن تكون أي صفحات فعلية أساسية متجاورة فعليًا. على هذا النحو، يجب أن يكون المضيف قادرًا على تخصيص مناطق ذاكرة متجاورة فعليًا. ومع ذلك، هذه القدرة غير موجودة في تطبيقات مساحة المستخدم على نظام Linux. لذلك، يجب أن يقوم برنامج تشغيل Linux kernel بإجراء التخصيص. - يتضمن برنامج تشغيل OpenCL SoC FPGA Linux kernel وظيفة mmap() لتخصيص الذاكرة الفعلية المشتركة وتعيينها في مساحة المستخدم. تستخدم الدالة mmap() استدعاء Linux kernel القياسي dma_alloc_coherent() لطلب مناطق ذاكرة متجاورة فعليًا للمشاركة مع الجهاز.
- في Linux kernel الافتراضي، لا يقوم dma_alloc_coherent() بتخصيص ذاكرة متجاورة فعليًا يزيد حجمها عن 0.5 ميغابايت (MB). للسماح لـ dma_alloc_coherent() بتخصيص كميات كبيرة من الذاكرة المتجاورة فعليًا، قم بتمكين ميزة مخصص الذاكرة المتجاورة (CMA) الخاصة بنواة Linux ثم أعد ترجمة Linux kernel.
بالنسبة للنظام الأساسي المرجعي لـ Cyclone V SoC Development Kit، تدير CMA 512 ميجابايت من أصل 1 جيجابايت من الذاكرة الفعلية. يمكنك زيادة أو تقليل هذه القيمة، اعتمادًا على حجم الذاكرة المشتركة التي يتطلبها التطبيق. قد لا يكون استدعاء dma_alloc_coherent() قادرًا على تخصيص 512 ميجابايت كاملة من الذاكرة المتجاورة فعليًا؛ ومع ذلك، فإنه يمكن بشكل روتيني الحصول على حوالي 450 ميغابايت من الذاكرة. - يمكن لوحدة المعالجة المركزية (CPU) تخزين الذاكرة المؤقتة التي يخصصها استدعاء dma_alloc_coherent(). على وجه الخصوص، عمليات الكتابة من التطبيق المضيف غير مرئية لنواة OpenCL. تحتوي وظيفة mmap() في برنامج تشغيل kernel OpenCL SoC FPGA Linux أيضًا على استدعاءات للوظيفة pgprot_noncached() أو remap_pf_range() لتعطيل التخزين المؤقت لهذه المنطقة من الذاكرة بشكل صريح.
- بعد أن تقوم الدالة dma_alloc_coherent() بتخصيص الذاكرة المتجاورة فعليًا، تقوم الدالة mmap() بإرجاع العنوان الظاهري إلى بداية النطاق، وهو نطاق عنوان الذاكرة التي تخصصها. يتطلب التطبيق المضيف هذا العنوان الظاهري للوصول إلى الذاكرة. من ناحية أخرى، تتطلب نواة OpenCL عناوين فعلية. يقوم برنامج تشغيل Linux kernel بتتبع تعيين العناوين الافتراضية إلى المادية. يمكنك تعيين العناوين الفعلية التي ترجعها mmap() إلى العناوين الفعلية الفعلية عن طريق إضافة استعلام إلى برنامج التشغيل.
يتضمن استدعاء واجهة برمجة التطبيقات (API) aocl_mmd_shared_mem_alloc() MMD الاستعلامات التالية:
أ. الدالة mmap() التي تقوم بتخصيص الذاكرة وإرجاع العنوان الظاهري.
ب. الاستعلام الإضافي الذي يقوم بتعيين العنوان الظاهري الذي تم إرجاعه إلى العنوان الفعلي.
ثم يقوم استدعاء aocl_mmd_shared_mem_alloc() MMD API بإرجاع عنوانين
—العنوان الفعلي الذي تم إرجاعه هو العنوان الظاهري، وينتقل العنوان الفعلي إلى Device_ptr_out.
ملحوظة: يمكن لبرنامج التشغيل فقط تعيين العناوين الافتراضية التي ترجعها الدالة mmap() إلى العناوين الفعلية. إذا طلبت العنوان الفعلي لأي مؤشر ظاهري آخر، فسيقوم برنامج التشغيل بإرجاع قيمة NULL.
تحذير: تفترض Intel FPGA SDK لمكتبات وقت تشغيل OpenCL أن الذاكرة المشتركة هي الذاكرة الأولى المدرجة في board_spec.xml file. بمعنى آخر، يصبح العنوان الفعلي الذي يحصل عليه برنامج تشغيل Linux kernel هو عنوان Avalon® الذي يمرره OpenCL kernel إلى HPS SDRAM.
فيما يتعلق بمكتبة وقت التشغيل، استخدم استدعاء clCreateBuffer() لتخصيص الذاكرة المشتركة كمخزن مؤقت للجهاز بالطريقة التالية:
- بالنسبة لمتغير اللوحة ثنائي DDR مع الذاكرة المشتركة وغير المشتركة، يقوم clCreateBuffer() بتخصيص الذاكرة المشتركة إذا قمت بتحديد علامة CL_MEM_USE_HOST_PTR. يؤدي استخدام إشارات أخرى إلى قيام clCreateBuffer() بتخصيص المخزن المؤقت في الذاكرة غير المشتركة.
- بالنسبة لمتغير لوحة DDR واحد مع الذاكرة المشتركة فقط، يقوم clCreateBuffer() بتخصيص الذاكرة المشتركة بغض النظر عن العلامة التي تحددها.
حاليًا، يتحكم دعم Linux 32 بت على وحدة المعالجة المركزية ARM في مدى دعم الذاكرة المشتركة في مكتبات وقت تشغيل SDK. بمعنى آخر، يتم تجميع مكتبات وقت التشغيل في بيئات أخرى (على سبيل المثالample أو x86_64 Linux أو Windows 64 بت) لا تدعم الذاكرة المشتركة.
لم يطبق C5soc ذاكرة غير متجانسة للتمييز بين الذاكرة المشتركة وغير المشتركة للأسباب التالية:
1. التاريخ—لم يكن دعم الذاكرة غير المتجانسة متاحًا عند إنشاء دعم الذاكرة المشتركة في الأصل.
2. الواجهة الموحدة — نظرًا لأن OpenCL هو معيار مفتوح، تحافظ Intel على الاتساق بين بائعي منصات الحوسبة غير المتجانسة. ولذلك، يتم استخدام نفس الواجهة مثل بنيات موردي اللوحات الأخرى لتخصيص الذاكرة المشتركة واستخدامها.
1.4 إعادة تشكيل FPGA
بالنسبة لـ SoC FPGAs، يمكن لوحدة المعالجة المركزية إعادة تكوين نسيج FPGA الأساسي دون مقاطعة تشغيل وحدة المعالجة المركزية. تقوم كتلة أجهزة FPGA Manager التي تمتد بين HPS وFPGA الأساسي بإعادة التكوين. يتضمن Linux kernel برنامج تشغيل يتيح سهولة الوصول إلى FPGA Manager.
- ل view حالة نواة FPGA، قم باستدعاء أمر الحالة cat /sys/class/fpga/fpga0/.
تستخدم الأداة المساعدة لبرنامج Intel FPGA SDK for OpenCL المتوفرة مع النظام الأساسي المرجعي Cyclone V SoC Development Kit هذه الواجهة لبرمجة FPGA. عند إعادة برمجة نواة FPGA باستخدام وحدة المعالجة المركزية (CPU) قيد التشغيل، تقوم الأداة المساعدة للبرنامج بتنفيذ جميع المهام التالية:
1. قبل إعادة البرمجة، قم بتعطيل كافة جسور الاتصال بين FPGA وHPS، سواء جسور H2F أو LH2F.
أعد تمكين هذه الجسور بعد اكتمال إعادة البرمجة.
انتبه: لا يستخدم نظام OpenCL جسر FPGA-to-HPS (F2H). راجع قسم واجهات HPS-FPGA في دليل جهاز Cyclone V، المجلد 3: الدليل المرجعي الفني لنظام المعالجات الصلبة لمزيد من المعلومات.
2. تأكد من تعطيل الارتباط بين FPGA ووحدة تحكم HPS DDR أثناء إعادة البرمجة.
3. تأكد من تعطيل مقاطعات FPGA على FPGA أثناء إعادة البرمجة.
قم أيضًا بإعلام السائق برفض أي مقاطعات من FPGA أثناء إعادة البرمجة.
راجع الكود المصدري للأداة المساعدة للبرنامج للحصول على تفاصيل حول التنفيذ الفعلي.
تحذير: لا تقم بتغيير تكوين وحدة تحكم HPS DDR أثناء تشغيل وحدة المعالجة المركزية.
قد يؤدي القيام بذلك إلى حدوث خطأ فادح في النظام لأنك قد تغير تكوين وحدة تحكم DDR عندما تكون هناك معاملات ذاكرة معلقة من وحدة المعالجة المركزية. وهذا يعني أنه عند تشغيل وحدة المعالجة المركزية، لا يجوز لك إعادة برمجة نواة FPGA بصورة تستخدم HPS DDR بتكوين مختلف.
تذكر أن نظام OpenCL والتصميم المرجعي للأجهزة الذهبية المتوفر مع Intel SoC FPGA Embedded Design Suite (EDS)، يضبط HPS DDR في وضع واحد 256 بت.
قد تقوم أجزاء نظام وحدة المعالجة المركزية، مثل أداة توقع الفرع أو الجلب المسبق لجدول الصفحات، بإصدار أوامر DDR حتى عندما يبدو أنه لا يوجد شيء قيد التشغيل على وحدة المعالجة المركزية.
ولذلك، فإن وقت التمهيد هو الوقت الآمن الوحيد لتعيين تكوين وحدة تحكم HPS DDR.
وهذا يعني أيضًا أن U-boot يجب أن يحتوي على ملف ثنائي خام file (.rbf) صورة لتحميلها في الذاكرة. بخلاف ذلك، قد تقوم بتمكين HPS DDR مع منافذ غير مستخدمة على FPGA ثم من المحتمل تغيير تكوينات المنافذ بعد ذلك. لهذا السبب، لم يعد برنامج تشغيل OpenCL Linux kernel يتضمن المنطق اللازم لتعيين تكوين وحدة تحكم HPS DDR.
تعمل حزمة SW3 المزدوجة المضمنة (DIP) على تشغيل مجموعة أدوات تطوير Cylone V SoC للتحكم في الشكل المتوقع لصورة .rbf (أي ما إذا كان file مضغوط و/أو مشفر). يتضمن C5soc، والتصميم المرجعي للأجهزة الذهبية المتوفر مع SoC EDS، صورًا مضغوطة ولكن غير مشفرة بتنسيق .rbf. تتطابق إعدادات محول SW3 DIP الموضحة في Intel FPGA SDK لدليل بدء تشغيل OpenCL Cyclone V SoC مع تكوين الصورة .rbf هذا.
روابط ذات صلة
- واجهات HPS-FPGA
- تكوين مفاتيح SW3
1.4.1 تفاصيل بنية نظام FPGA
يعتمد دعم النظام الأساسي المرجعي لمجموعة أدوات تطوير Cyclone V SoC على النظام الأساسي المرجعي Stratix® V (s5_ref)، المتوفر مع Intel FPGA SDK لـ OpenCL.
التنظيم العام لنظام c5soc Qsys وبرنامج تشغيل kernel مشابه جدًا لتلك الموجودة في s5_ref.
مكونات FPGA الأساسية التالية هي نفسها في كل من c5soc وs5_ref:
- كتلة VERSION_ID
- آلية الراحة
- مقسم بنك الذاكرة
- واجهة ذاكرة التخزين المؤقت التطفل
- ساعة النواة
- كتل الوصول إلى سجل التحكم (CRA).
1.5 إنشاء صورة بطاقة فلاش SD
نظرًا لأن Cyclone V SoC FPGA عبارة عن نظام كامل على شريحة، فأنت مسؤول عن تقديم التعريف الكامل للنظام. توصي شركة Intel بتسليمها على شكل صورة بطاقة فلاش SD. يمكن لمستخدم Intel FPGA SDK for OpenCL ببساطة كتابة الصورة على بطاقة فلاش micro SD وتكون لوحة SoC FPGA جاهزة للاستخدام.
تعديل صورة بطاقة فلاش SD الموجودة في الصفحة 13
توصي Intel بتعديل الصورة المتوفرة باستخدام النظام الأساسي المرجعي لمجموعة Cyclone V SoC Development Kit. لديك أيضًا خيار إنشاء صورة بطاقة فلاش SD جديدة.
إنشاء صورة لبطاقة فلاش SD في الصفحة 14
لديك أيضًا خيار إنشاء صورة بطاقة فلاش SD جديدة.
1.5.1 تعديل صورة بطاقة فلاش SD الموجودة
توصي Intel بتعديل الصورة المتوفرة باستخدام Cyclone V SoC
منصة مرجعية لمجموعة التطوير. لديك أيضًا خيار إنشاء صورة بطاقة فلاش SD جديدة.
صورة c5soc linux_sd_card_image.tgz file يتوفر في الدليل ALTERAOCLSDKROOT/board/c5soc، حيث يشير ALTERAOCLSDKROOT إلى مسار Intel FPGA SDK لدليل تثبيت OpenCL.
انتباه: لتعديل صورة بطاقة فلاش SD، يجب أن يكون لديك امتيازات الجذر أو sudo.
- لفك الضغط عن $ALTERAOCLSDKROOT/board/c5soc/linux_sd_card_image.tgz file، قم بتشغيل الأمر tar xvfzlinux_sd_card_image.tgz.
- قم بتجميع ملف hello_world OpenCL السابقampلو التصميم باستخدام دعم النظام الأساسي المخصص الخاص بك. إعادة تسمية .rbf file التي يقوم Intel FPGA SDK for OpenCL Offline Compiler بإنشائها كـ opencl.rbf، ووضعها على قسم Fat32 داخل صورة بطاقة فلاش SD.
يمكنك تنزيل الملف hello_world السابقampالتصميم من OpenCL Design Exampصفحة les على Altera webموقع. - ضع .rbf file في قسم Fat32 لصورة بطاقة الفلاش.
انتباه: يجب أن يحتوي قسم Fat32 على ملفي zImage file و.rbf file. بدون .rbf fileسيحدث خطأ فادح عند إدخال برنامج التشغيل. - بعد إنشاء صورة بطاقة SD، قم بكتابتها على بطاقة micro SD عن طريق استدعاء الأمر التالي: Sudo dd if=/path/to/sdcard/image.bin of=/dev/sdcard
- لاختبار صورة بطاقة فلاش SD الخاصة بك، قم بتنفيذ المهام التالية:
أ. أدخل بطاقة فلاش micro SD في لوحة SoC FPGA.
ب. قم بتشغيل اللوحة.
ج. قم باستدعاء أمر الأداة المساعدة لتشخيص aocl.
1.5.2 إنشاء صورة بطاقة فلاش SD
لديك أيضًا خيار إنشاء صورة بطاقة فلاش SD جديدة. تتوفر تعليمات عامة حول إنشاء صورة بطاقة فلاش SD جديدة وإعادة إنشاء صورة بطاقة فلاش SD موجودة على صفحة GSRD v14.0.2 – SD Card على موقع RocketBoards.org webموقع.
تصف الخطوات أدناه الإجراء الخاص بإنشاء صورة linux_sd_card_image.tgz من صورة بطاقة فلاش SD ذات التصميم المرجعي للنظام الذهبي (GSRD):
ملحوظة:
لإنشاء الصورة من صورة c5soc، قم بتنفيذ جميع المهام القابلة للتطبيق الموضحة في هذا الإجراء.
- قم بتنزيل وتفريغ نسخة صورة بطاقة فلاش GSRD SD 14.0 من Rocketboards.org.
- قم بتركيب file جدول التخصيص (FAT32) وموسع file أقسام النظام (ext3) في هذه الصورة كأجهزة استرجاع. لتركيب قسم، قم بالخطوات التالية:
أ. حدد بداية البايت للقسم داخل الصورة عن طريق استدعاء /sbin/fdisk -lu image_file يأمر.
على سبيل المثالample، القسم رقم 1 من النوع W95 FAT له إزاحة كتلة تبلغ 2121728. مع 512 بايت لكل كتلة، تكون إزاحة البايت 512 بايت × 2121728 = 1086324736 بايت.
ب. تحديد جهاز حلقة حرة (على سبيل المثالample, /dev/loop0) عن طريق كتابة الأمر Losetup -f.
ج. بافتراض أن /dev/loop0 هو جهاز الحلقة المجانية، قم بتعيين صورة بطاقة الفلاش الخاصة بك إلى جهاز كتلة الحلقة عن طريق استدعاء Lostup /dev/loop0 image_file -0 1086324736 الأمر.
د. قم بتثبيت جهاز الحلقة عن طريق استدعاء الأمر mount /dev/loop0 /media/disk1.
داخل الصورة file، أصبح /media/disk1 الآن قسمًا مثبتًا على Fat32.
ه. كرر الخطوات من أ إلى د لقسم ext3. - قم بتنزيل إصدار Cyclone V SoC FPGA من Intel FPGA Runtime Environment لحزمة OpenCL من مركز التنزيل على Altera webموقع.
أ. انقر فوق الزر "تنزيل" بجانب إصدار برنامج Quartus Prime.
ب. حدد إصدار الإصدار ونظام التشغيل وطريقة التنزيل.
ج. انقر فوق علامة التبويب "برامج إضافية"، وحدد تنزيل Intel FPGA
بيئة التشغيل لـ OpenCL Linux Cyclone V SoC TGZ.
د. بعد أن تقوم بتحميل aocl-rte- .arm32.tgz file، قم بفكها
الدليل الذي تملكه. - ضع aocl-rte- غير المعبأة دليل .arm32 في الدليل /home/root/opencl_arm32_rte على قسم ext3 من الصورة file.
- احذف مجلد (مجلدات) الأجهزة الخاصة بالنظام الأساسي المخصص لديك، ثم ضع النظام الأساسي المخصص في الدليل الفرعي للوحة /home/root/ opencl_arm32_rte.
- قم بإنشاء ملف init_opencl.sh file في الدليل /home/root بالمحتوى التالي:export ALTERAOCLSDKROOT=/home/root/opencl_arm32_rteexport AOCL_BOARD_PACKAGE_ROOT=$ALTERAOCLSDKROOT/board/ تصدير PATH=$ALTERAOCLSDKROOT/bin:$PATH تصدير LD_LIBRARY_PATH=$ALTERAOCLSDKROOT/host/arm32/lib:$LD_LIBRARY_PATH insmod $AOCL_BOARD_PACKAGE_ROOT/driver/aclsoc_drv.ko
يقوم مستخدم SDK بتشغيل الأمر ./init_opencl.sh المصدر لتحميل متغيرات البيئة وبرنامج تشغيل OpenCL Linux kernel. - إذا كنت بحاجة إلى تحديث أداة التحميل المسبق، فإن DTS files، أو نواة Linux، فأنت بحاجة إلى برنامج التحويل البرمجي Arm-linux-gnueabihf-gcc من SoC EDS. اتبع الإرشادات الموضحة في دليل مستخدم Intel SoC FPGA Embedded Design Suite للحصول على البرنامج وإعادة ترجمته وتحديث الإصدارات ذات الصلة. fileعلى قسم Fat32 المثبت.
انتباه: من المرجح أنك تحتاج إلى تحديث أداة التحميل المسبق إذا كان النظام الأساسي المخصص الخاص بك يحتوي على استخدامات دبوس مختلفة عن تلك الموجودة في c5soc.
تذكر: إذا قمت بإعادة ترجمة Linux kernel، فأعد ترجمة برنامج تشغيل Linux kernel باستخدام نفس مصدر Linux kernel fileس. إذا كان هناك عدم تطابق بين برنامج تشغيل Linux kernel و Linux kernel، فلن يتم تحميل برنامج التشغيل. كما يجب عليك تمكين CMA.
راجع إعادة ترجمة Linux Kernel لمزيد من المعلومات. - قم بتجميع ملف hello_world OpenCL السابقampلو التصميم باستخدام دعم النظام الأساسي المخصص الخاص بك. إعادة تسمية .rbf file التي يقوم Intel FPGA SDK for OpenCL Offline Compiler بإنشائها كـ opencl.rbf، ووضعها على قسم Fat32 داخل صورة بطاقة فلاش SD.
يمكنك تنزيل الملف hello_world السابقampالتصميم من OpenCL Design Exampصفحة les على Altera webموقع.
9. بعد أن تقوم بتخزين كل ما يلزم fileعلى صورة بطاقة الفلاش، قم باستدعاء الأوامر التالية:
أ. مزامنة
ب. إلغاء تحميل /media/disk1
ج. إلغاء تحميل أين هو اسم الدليل الذي تستخدمه لتثبيت قسم ext3 في 3 في الصفحة 3 (على سبيل المثالampلو، /media/disk2).
د. Losetup -d /dev/loop0
ه. Losetup -d /dev/loop1 - قم بضغط صورة بطاقة فلاش SD عن طريق استدعاء الأمر التالي: tar cvfz .tgz linux_sd_card_image
- تقديم .tgz file داخل الدليل الجذر للنظام الأساسي المخصص الخاص بك.
- لاختبار صورة بطاقة فلاش SD الخاصة بك، قم بتنفيذ المهام التالية:
أ. اكتب الصورة غير المضغوطة الناتجة على بطاقة فلاش micro SD.
ب. أدخل بطاقة فلاش micro SD في لوحة SoC FPGA.
ج. قم بتشغيل اللوحة.
د. قم باستدعاء أمر الأداة المساعدة لتشخيص aocl.
روابط ذات صلة
- دليل مستخدم مجموعة التصميم المضمنة Intel SoC FPGA
- تصميم OpenCL السابقampصفحة les على Altera webموقع
- إعادة ترجمة Linux Kernel في الصفحة 16
لتمكين CMA، يجب عليك أولاً إعادة ترجمة نواة Linux. - الاستعلام عن اسم الجهاز الخاص بلوحة FPGA (التشخيص)
1.6 تجميع Linux Kernel لـ Cyclone V SoC FPGA
قبل تشغيل تطبيقات OpenCL على لوحة Cyclone V SoC FPGA، يجب عليك تجميع مصدر Linux kernel، وتجميع وتثبيت برنامج تشغيل OpenCL Linux kernel.
- إعادة ترجمة Linux Kernel في الصفحة 16
لتمكين CMA، يجب عليك أولاً إعادة ترجمة نواة Linux. - تجميع وتثبيت برنامج تشغيل OpenCL Linux Kernel في الصفحة 17 قم بتجميع برنامج تشغيل OpenCL Linux kernel مقابل مصدر kernel المترجم.
1.6.1 إعادة ترجمة نواة لينكس
لتمكين CMA، يجب عليك أولاً إعادة ترجمة نواة Linux.
- انقر فوق الرابط GSRD v14.0 – Compiling Linux الموجود على صفحة الموارد في RocketBoards.org webللوصول إلى التعليمات الخاصة بتنزيل وإعادة بناء كود مصدر Linux kernel.
للاستخدام مع ™ Intel FPGA SDK لـ OpenCL، حدد socfpga-3.13-rel14.0 باعتباره . - ملاحظة: تقوم عملية البناء بإنشاء ملف Arch/arm/configs/socfpga_defconfig file. هذا file يحدد إعدادات التكوين الافتراضي socfpga.
أضف الأسطر التالية إلى أسفل ملف Arch/arm/configs/socfpga_defconfig file.
CONFIG_MEMORY_ISOLATION=y
CONFIG_CMA=y
CONFIG_DMA_CMA=y
CONFIG_CMA_DEBUG=y
CONFIG_CMA_SIZE_MBYTES=512
CONFIG_CMA_SIZE_SEL_MBYTES=ص
CONFIG_CMA_ALIGNMENT=8
CONFIG_CMA_AREAS=7
تقوم قيمة التكوين CONFIG_CMA_SIZE_MBYTES بتعيين الحد الأعلى لإجمالي عدد الذاكرة المتجاورة فعليًا المتوفرة. يمكنك زيادة هذه القيمة إذا كنت تحتاج إلى المزيد من الذاكرة. - انتباه: إجمالي حجم الذاكرة الفعلية المتوفرة لمعالج ARM على لوحة SoC FPGA هو 1 جيجابايت. لا توصي شركة Intel بتعيين مدير CMA على مسافة قريبة من 1 جيجابايت.
- قم بتشغيل الأمر make mrproper لتنظيف التكوين الحالي.
- قم بتشغيل الأمر make ARCH=arm socfpga_deconfig.
يشير ARCH=arm إلى أنك تريد تكوين بنية ARM.
يشير socfpga_defconfig إلى أنك تريد استخدام تكوين socfpga الافتراضي. - قم بتشغيل الأمر Export CROSS_COMPILE=arm-linux-gnueabihf-.
يقوم هذا الأمر بتعيين متغير البيئة CROSS_COMPILE لتحديد بادئة سلسلة الأدوات المطلوبة. - قم بتشغيل الأمر make ARCH=arm zImage. الصورة الناتجة متاحة في ملف Arch/arm/boot/zImage file.
- ضع الصورة z file في قسم Fat32 لصورة بطاقة الفلاش. للحصول على تعليمات مفصلة، راجع دليل مستخدم GSRD الخاص بـ Cyclone V SoC FPGA على Rocketboards.org.
- ملاحظة: لإدراج برنامج تشغيل OpenCL Linux بشكل صحيح، قم أولاً بتحميل SDKgenerated.rbf file على FPGA.
لإنشاء .rbf file، قم بتجميع تصميم SDK على سبيل المثالample مع النظام الأساسي المرجعي لمجموعة أدوات تطوير Cyclone V SoC باعتباره النظام الأساسي المخصص المستهدف.
9. ضع .rbf file في قسم Fat32 لصورة بطاقة الفلاش.
انتبه: يجب أن يحتوي قسم Fat32 على ملفي zImage file و.rbf file. بدون .rbf fileسيحدث خطأ فادح عند إدخال برنامج التشغيل. - أدخل بطاقة SD الصغيرة المبرمجة، والتي تحتوي على صورة بطاقة SD التي قمت بتعديلها أو إنشائها مسبقًا، في Cyclone V SoC Development Kit ثم قم بتشغيل لوحة SoC FPGA.
- تحقق من إصدار Linux kernel المثبت عن طريق تشغيل الأمر uname -r.
- للتحقق من تمكين CMA بنجاح في kernel، مع تشغيل لوحة SoC FPGA، قم بتشغيل الأمر grep init_cma /proc/kallsyms.
يتم تمكين CMA إذا كان الإخراج غير فارغ. - لاستخدام Linux kernel المعاد ترجمته مع SDK، قم بتجميع وتثبيت برنامج تشغيل Linux kernel.
روابط ذات صلة
- دليل المستخدم للتصميم المرجعي للنظام الذهبي (GSRD).
- إنشاء صورة لبطاقة فلاش SD في الصفحة 13
نظرًا لأن Cyclone V SoC FPGA عبارة عن نظام كامل على شريحة، فأنت مسؤول عن تقديم التعريف الكامل للنظام.
1.6.2 تجميع وتثبيت برنامج تشغيل OpenCL Linux Kernel
قم بتجميع برنامج تشغيل OpenCL Linux kernel مقابل مصدر kernel المترجم.
يتوفر مصدر برنامج التشغيل في إصدار Cyclone V SoC FPGA من بيئة تشغيل Intel FPGA لـ OpenCL. بالإضافة إلى ذلك، تأكد من أنك قمت بتحميل Intel FPGA SDK لملف .rbf الذي تم إنشاؤه بواسطة OpenCL file في FPGA لمنع التثبيت غير الصحيح لوحدة Linux kernel.
- قم بتنزيل إصدار Cyclone V SoC FPGA من Intel FPGA Runtime Environment لحزمة OpenCL من مركز التنزيل على Altera webموقع.
أ. انقر فوق الزر "تنزيل" بجانب إصدار برنامج Quartus Prime.
ب. حدد إصدار الإصدار ونظام التشغيل وطريقة التنزيل.
ج. انقر فوق علامة التبويب "برامج إضافية"، وحدد تنزيل Intel FPGA
بيئة التشغيل لـ OpenCL Linux Cyclone V SoC TGZ.
د. بعد أن تقوم بتحميل aocl-rte- .arm32.tgz file، قم بفكها
الدليل الذي تملكه.
مصدر برنامج التشغيل موجود في aocl-rte- .arm32/board/c5soc/ دليل التشغيل. - لإعادة ترجمة برنامج تشغيل OpenCL Linux kernel، قم بتعيين قيمة KDIR في ملف Make الخاص ببرنامج التشغيلfile إلى الدليل الذي يحتوي على مصدر Linux kernel files.
- قم بتشغيل الأمر Export CROSS_COMPILE=arm-linux-gnueabihf- للإشارة إلى بادئة سلسلة أدواتك.
- قم بتشغيل أمر التنظيف.
- قم بتشغيل الأمر make لإنشاء ملف aclsoc_drv.ko file.
- انقل دليل opencl_arm32_rte إلى لوحة Cyclone V SoC FPGA.
تشغيل scp -r root@your-ipaddress: يضع الأمر بيئة وقت التشغيل في الدليل/home/root. - قم بتشغيل البرنامج النصي init_opencl.sh الذي قمت بإنشائه عند إنشاء صورة بطاقة SD.
- قم باستدعاء أمر الأداة المساعدة لتشخيص aocl. ستقوم الأداة المساعدة للتشخيص بإرجاع نتيجة تمرير بعد تشغيل init_opencl.sh بنجاح.
1.7 المشكلات المعروفة
توجد حاليًا قيود معينة على استخدام Intel FPGA SDK لـ OpenCL مع النظام الأساسي المرجعي لمجموعة أدوات تطوير Cyclone V SoC.
- لا يمكنك تجاوز أسماء البائعين واللوحات التي تم الإبلاغ عنها بواسطة سلاسل CL_DEVICE_VENDOR وCL_DEVICE_NAME لاستدعاء clGetDeviceInfo().
- إذا قام المضيف بتخصيص ذاكرة ثابتة في نظام DDR مشترك (أي HPS DDR) وقام بتعديل الذاكرة الثابتة بعد تنفيذ kernel، فقد تصبح البيانات الموجودة في الذاكرة قديمة. تنشأ هذه المشكلة لأن نواة FPGA لا يمكنها التطفل على معاملات DDR من وحدة المعالجة المركزية (CPU) إلى HPS.
لمنع عمليات تنفيذ kernel اللاحقة من الوصول إلى البيانات القديمة، قم بتنفيذ أحد الحلول البديلة التالية:
• لا تقم بتعديل الذاكرة الثابتة بعد تهيئتها.
• إذا كنت تحتاج إلى مجموعات بيانات __constant متعددة، فقم بإنشاء عدة مخازن مؤقتة للذاكرة الثابتة.
• إذا كان ذلك متاحًا، قم بتخصيص ذاكرة ثابتة في FPGA DDR على لوحة التسريع لديك. - تدعم الأداة المساعدة SDK الموجودة على ARM فقط أوامر البرنامج وتشخيص الأداة المساعدة.
لا تنطبق أوامر الأداة المساعدة للفلاش والتثبيت وإلغاء التثبيت على Cyclone V SoC Development Kit للأسباب التالية:
أ. يجب أن تقوم أداة التثبيت المساعدة بتجميع برنامج تشغيل kernel aclsoc_drv Linux وتمكينه على SoC FPGA. يجب على آلة التطوير أن تقوم بالتجميع؛ ومع ذلك، فهو يحتوي بالفعل على مصادر Linux kernel لـ SoC FPGA. تختلف مصادر Linux kernel لجهاز التطوير عن تلك الخاصة بـ SoC FPGA. من المحتمل أن يكون موقع مصادر Linux kernel لـ SoC FPGA غير معروف لمستخدم SDK. وبالمثل، فإن الأداة المساعدة لإلغاء التثبيت غير متاحة أيضًا لمجموعة Cyclone V SoC Development Kit.
كما أن تسليم aclsoc_drv إلى لوحة SoC يمثل تحديًا نظرًا لأن التوزيع الافتراضي لمجموعة Cyclone V SoC Development Kit لا يحتوي على Linux kernel files أو مترجم GNU Compiler Collection (GCC).
ب. تتطلب أداة الفلاش وضع ملف .rbf file لتصميم OpenCL على قسم FAT32 لبطاقة فلاش micro SD. حاليًا، لا يتم تثبيت هذا القسم عندما يقوم مستخدم SDK بتشغيل اللوحة. ولذلك، فإن أفضل طريقة لتحديث القسم هي استخدام قارئ بطاقة فلاش وآلة التطوير. - عند التبديل بين Intel FPGA SDK لبرنامج OpenCL Offline Compiler القابل للتنفيذ files (.aocx) التي تتوافق مع متغيرات اللوحة المختلفة (أي، c5soc وc5soc_sharedonly)، يجب عليك استخدام الأداة المساعدة لبرنامج SDK لتحميل .aocx file لمتغير اللوحة الجديد لأول مرة. إذا قمت ببساطة بتشغيل التطبيق المضيف باستخدام متغير لوحة جديد ولكن FPGA يحتوي على صورة من متغير لوحة آخر، فقد يحدث خطأ فادح.
- .qxp file لا يتضمن تعيينات قسم الواجهة لأن برنامج Quartus Prime يلبي باستمرار متطلبات التوقيت لهذا القسم.
- عندما تقوم بتشغيل اللوحة، يتم تعيين عنوان التحكم في الوصول إلى الوسائط (MAC) الخاص بها على رقم عشوائي. إذا كانت سياسة LAN الخاصة بك لا تسمح بهذا السلوك، فقم بتعيين عنوان MAC عن طريق تنفيذ المهام التالية:
أ. أثناء تشغيل U-Boot، اضغط على أي مفتاح للدخول إلى موجه أوامر U-Boot.
ب. اكتب setenv ethaddr 00:07:ed:00:00:03 في موجه الأوامر.
يمكنك اختيار أي عنوان MAC.
ج. اكتب الأمر saveenv.
د. أعد تشغيل اللوحة.
1.8 تاريخ مراجعة الوثيقة
الجدول 1.
سجل مراجعة المستندات الخاصة بـ Intel FPGA SDK لـ OpenCL Cyclone V SoC
دليل نقل النظام الأساسي المرجعي لمجموعة أدوات التطوير
تاريخ | إصدار | التغييرات |
17 مايو | 2017.05.08 | •الافراج عن صيانة. |
أكتوبر 2016 | 2016.10.31 | • تغيير العلامة التجارية Altera SDK لـ OpenCL إلى Intel FPGA SDK لـ OpenCL. • تم إعادة تسمية برنامج Altera Offline Compiler إلى Intel FPGA SDK لبرنامج OpenCL Offline Compiler. |
16 مايو | 2016.05.02 | • تعليمات معدلة حول بناء وتعديل صورة بطاقة فلاش SD. • تعليمات معدلة حول إعادة ترجمة Linux kernel وبرنامج تشغيل OpenCL Linux kernel. |
نوفمبر - 15 | 2015.11.02 | •إصدار الصيانة وتغيير مثيلات Quartus II إلى Quartus Prime. |
15 مايو | 15.0.0 | • في إعادة تكوين FPGA، تمت إزالة التعليمات لإعادة برمجة نواة FPGA مع . صورة rbf عن طريق استدعاء القطة fileالاسم>. rbf > الأمر /dev/ fpga0 لأن هذه الطريقة غير مستحسنة. |
14 ديسمبر | 14.1.0 | • تمت إعادة تسمية المستند ليصبح دليل نقل النظام الأساسي المرجعي لـ Altera Cyclone V SoC Development Kit. • تحديث أداة إعادة البرمجة لبرنامج aoclfileالاسم> أمر الأداة المساعدة aocx. • تحديث أداة التشخيص لتشخيص AOCL وتشخيص AOCL أمر فائدة. •تم تحديث الإجراء في قسم نقل النظام الأساسي المرجعي إلى لوحة SoC الخاصة بك ليشمل إرشادات حول نقل قسم لوحة c5soc وتعديله لإنشاء قسم نظيف التوقيت لتدفق إغلاق التوقيت المضمون. • تم إدراج موضوع تحديث منصة مرجعية منقولة لتوضيح إجراءات المهام التالية: 1. باستثناء كتلة نظام المعالج الصلب (HPS) في قسم اللوحة 2. تحديث صورة بطاقة فلاش SD • تحديث قسم إنشاء صورة بطاقة فلاش SD. يوصى باستخدام الإصدار 14.0 من صورة التصميم المرجعي للنظام الذهبي (GSRD) كنقطة بداية بدلاً من الصورة المتوفرة مع SoC Embedded Design Suite (EDS). •تم تحديث قسم إعادة ترجمة Linux Kernel وقسم برنامج تشغيل OpenCL Linux Kernel: 1. تمت إضافة تعليمات لتعيين متغير CROSS COMPILE. 2. تم تغيير الأمر الذي تقوم بتشغيله للتحقق من تمكين CMA بنجاح. |
14 يوليو | 14.0.0 | •الإصدار الأولي. |
المستندات / الموارد
![]() |
إنتل FPGA SDK لـ OpenCL [بي دي اف] دليل المستخدم FPGA SDK لـ OpenCL، FPGA SDK، SDK لـ OpenCL، SDK |