نكتب AI لـ Vindinium على أجهزة كمبيوتر أحادية اللوحة. الجزء الأول: اختيار المرشح

في بعض الأحيان تكون هناك رغبة في الهروب من الصخب الدنيوي والقيام بشيء مثير للاهتمام. في حالتي ، كانت Vindinium - مسابقة AI حيث يقاتل أربعة فرسان من أجل المجد والثروة والطعام.



وسوف نعد أنفسنا المهمة - للوصول إلى المتصدرين. ومع ذلك ، سيتم حل المهمة أكثر إثارة للاهتمام إذا وضعنا قيودًا صارمة - فالذكاء الاصطناعي سيجذب الموارد ليس من حاسوبنا القوي بلا شك ، ولكن من لوحة واحدة على بنية ARM! في الوقت نفسه ، لن نحصل فقط على تجربة مع الأجهزة المحمولة ، ولكن أيضًا القدرة على إبقاء الروبوتات على مدار الساعة طوال أيام الأسبوع دون أي ضرر للكمبيوتر الرئيسي!

الجزء 2
الجزء 3
دعنا نبدأ!

إلى متى ، لفترة وجيزة ، تم العثور على ثلاثة أجهزة كمبيوتر ذات لوحة واحدة بسعر رخيص - Orange Pi Zero ، NanoPi Neo ، NanoPi Neo2 ، يتم عرض خصائصها المختصرة في الجدول:
البرتقالي بي صفرNanoPi NeoNanoPi Neo2
حجم ذاكرة الوصول العشوائي512 ميجابايت DDR3512 ميجابايت DDR3512 ميجابايت DDR3
ذاكرة مدمجة---
وحدة المعالجة المركزيةAllwinner H2 + Cortex A7 (بنية 32 بت ، 4 نوى ، تردد يصل إلى 1200 هرتز)Allwinner H3 Cortex A7 (بنية 32 بت ، 4 نوى ، تردد يصل إلى 1200 هرتز)Allwinner H5 Cortex-A53 (بنية 64 بت ، 4 نوى ، تردد يصل إلى 1500 هرتز )
جوهر الرسوماتARM Mali400 MP2 ، دون تلميح OpenCLARM Mali400 MP4 ، دون تلميح OpenCLARM Mali450 MP4 ، دون تلميح من OpenCL
"ثلاثة أحجام" ، مم52x46x1740x40x1740x40x17
الوصول إلى الإنترنت100Mbps Ethernet + 802.11 b / g / n WiFi مع هوائي100Mbps إيثرنتإيثرنت بسرعة 1 جيجابت في الثانية
عدد مخرجات USB1 (+2 معروض)1 (+2 معروض)1 (+2 معروض)
السعر (+ التسليم إلى موسكو) ، $7 + 3.85 = 10.858 + 5 = 1315 + 5 = 20

استغرق تسليم Orange Pi Zero 20 يومًا بالضبط ، وصل Neo و Neo2 في اليوم السابق ، على ما أعتقد ، بسرعة كبيرة.

لنبدأ في الفهم ...


تفريغ الحزم ...
الصورة
الصورة
الصورة
الصورة
الصورة
الصورة
الصورة

تجدر الإشارة إلى أن Basic Starter Kit (+13 دولارًا) تم طلبها لـ Neo ، والتي بالإضافة إلى الكمبيوتر ، تشمل:

- محول USB إلى UART ؛
- كبير (إذا كان يمكنك استدعاء لوحة الألومنيوم بحجم الكمبيوتر مثل) المبرد + جبل ؛
- بطاقة MicroSD على SanDisk 10class سعة 8 جيجابايت.
- كابل MicroUSB.

هناك أيضًا مجموعة كاملة للمبتدئين (29 دولارًا + شحن) ، وهي تشمل كل ما هو متوفر في Basic ، بالإضافة إلى حالة وشاشة OLED ، ولكن لغرضنا هذا إلى حد ما زائدة عن الحاجة.

استعد للإطلاق الأول ...



ننزل من موقع armbian ثلاث صور جديدة لـ NanoPi Neo و Neo2 و OrangePi Zero ، وسوف نستخدم بطاقة MicroSD تم الحصول عليها من Basic Starter Kit.

من الآن فصاعدا ، سوف نطلق على الكمبيوتر ذو اللوحة الواحدة كمبيوتر واحد ، وكمبيوتر - كمبيوتر كبير وقوي أو كمبيوتر محمول مألوف بالنسبة لنا.

الآن لدينا طريقتان يمكنك من خلالهما العمل مع دافعي واحد:

[1] عبر إيثرنت ؛

تعليمات موجزة
  1. نقوم بتوصيل لوحة واحدة عبر كابل إيثرنت بكمبيوتر محمول أو كمبيوتر أو جهاز توجيه ؛
  2. قم بتشغيل الطاقة للاعب واحد ؛
  3. نحن نفحص الشبكة ، بالنسبة لمعظم الأنظمة المستندة إلى لينكس ، يمكن إجراؤها باستخدام الأمر "arp -a" ، لأن نظام التشغيل Windows يوجد nmap ؛
  4. نحن متصلون بخادم لوحة واحدة ، لنظام لينكس: “ssh ip -l root” ، كلمة المرور الافتراضية هي “1234” ؛ في Windows ، يمكنك استخدام أي عميل ssh ، على سبيل المثال ، المعجون متعدد الوظائف


[2] استخدام محول USB إلى UART.

تعليمات موجزة
  1. نقوم بتوصيل المحول بالكمبيوتر ، وتحديد عنوانه الفعلي: في لينكس ننظر إلى السطور الأخيرة من "dmesg | grep tty "وابحث عن شيء مشابه لـ ttyUSBX ، بالنسبة لنظام التشغيل Windows ، نبحث في إدارة الأجهزة عن أجهزة COM الجديدة
  2. نقوم بتوصيل لوحة مفردة بالمحول: نقوم بتوصيل السلك بالمحول بحيث يتم توصيل GND بسلك أسود ، ويكون TX أصفر ، ثم نقوم بتوصيل لوحة واحدة (Neo / Neo2 متصلة بجهات الاتصال الملحومة الوحيدة بالقرب من منفذ USB بحيث يكون السلك الأسود بالقرب من أقرب حافة ، و أصفر مرسوم في اتجاه بطاقة الفلاش ، يتضح الترتيب: GND ، 5V ، RX ، TX ؛ لا يمكن توصيل Orange Pi Zero بالكابل الذي يأتي مع حزمة المبتدئين ، لا يوجد 5V في المنتصف ، لذلك عليك استخدام كابل مختلف)
  3. أنت الآن بحاجة إلى العثور على برنامج سيكون ملائمًا للعمل مع وحدة التحكم على TTY / COM: بالنسبة إلى Linux ، سأوصي باستخدام minicom أو معجون مناسب (تحتاج إلى التشغيل بامتيازات المستخدم الخارق) ، لا يزال المعجون مناسبًا لنظام Windows


تحتاج إلى مراقبة درجة الحرارة ، تحتاج إلى مراقبة درجة الحرارة ...


يجب أن نتحكم في درجة الحرارة إذا أردنا احتواء AI لـ Vindinium عليه ، وتجنب خفض التردد أو التجميد أو خلل في لوحة واحدة. لنكتب نصًا بسيطًا لمراقبة درجة الحرارة (في نفس الوقت ، لنتدرب على تشغيل ملفات .py):

البرنامج النصي
import time, sys print('NanoTemp 0.1') while True: with open('/sys/devices/virtual/thermal/thermal_zone0/temp', 'r') as f: temp1 = f.read()[:-1] with open('/sys/devices/virtual/thermal/thermal_zone1/temp', 'r') as f: temp2 = f.read()[:-1] print('\r'+temp1+' '+ temp2) time.sleep(0.5) 


يمكنك الآن تحميل هذا الملف إلى محرك أقراص محمول في الدليل / home / username /.

تلميح: يمكن لـ Ubuntu و Debian والعديد من أنظمة التشغيل الأخرى المستندة إلى Linux العمل مع أنظمة الملفات ext3 / ext4 من تحت الصندوق ؛ سيعرض Windows تهيئة محرك أقراص USB المحمول. يجب عليك استخدام الأدوات المساعدة التي تسمح لك بالعمل مع هذا النوع من نظام الملفات ، على سبيل المثال ، تثبيت برنامج تشغيل Ext2Fsd.

في وقت لاحق تعلمت عن برنامج مثل armbianmonitor ، والذي يمكنك من خلاله مراقبة درجة الحرارة بأمان ليس فقط ، ولكن أيضًا التردد والوقت المحلي والحمل ، وهو أمر مفيد بلا شك.

نقوم بتوصيل كل لوحة بمصدر التيار الكهربائي ، وننتظر 15 دقيقة في وقت الخمول ونرى النتائج:
البرتقالي بي صفرNanoPi NeoNanoPi Neo2
60 درجة مئوية35 درجة مئوية50.3 درجة مئوية

ومن المثير للاهتمام أن المستشعر في Neo2 يظهر درجة الحرارة حتى أول علامة عشرية ، ومع ذلك ، فإنه يخفي عنا معلومات حول تردد المعالج الحالي .

من المحزن أن Orange Pi Zero حار جدًا في وقت الخمول ، على عكس شقيقه Neo بتردد 240MHz نفسه. المنتديات مليئة بالاستياء من هذا الموضوع. كخيار يحل هذه المشكلة ، يتم تقديم برنامج نصي خاص ، وتحرير ملفات النظام واستخدام التبريد. ومع ذلك ، هناك أيضًا معلومات تفيد بأن هذه كانت جميع التدابير ضد التسخين إلى 80 درجة في وقت الخمول ، و 55-60 درجة في النسخة الطازجة من armbian أمر طبيعي في هذه الحالة. على ما يبدو ، تم حل المشكلة جزئيا فقط .

دعونا نحاول تثبيت التبريد السلبي. بالنسبة إلى Orange Pi Zero ، تم شراء مجموعة خاصة من خافض حرارة للمعالج وذاكرة الوصول العشوائي مقابل 2.82 دولارًا. في حالة NanoPi ، لدينا مبرد قوي ، يمكن شراؤه بشكل منفصل عن Starter Pack مقابل 2.99 دولارًا.

تبدو الصورة الآن بعد 15 دقيقة من الإطلاق كما يلي:
البرتقالي بي صفرNanoPi NeoNanoPi Neo2
53 درجة مئوية30 درجة مئوية39.5 درجة مئوية

الاحماء إلى أقصى حد!


وقد لوحظ أن البرتقال كان دافئًا جدًا. ومن المثير للاهتمام ، كم درجة سوف تقفز درجة الحرارة أثناء الحمل. سنستخدم برنامج cpuburn المتوفر في المستودعات (بالنسبة لـ Neo و Zero سنستخدم الأمر burnCortexA7 ، لـ Neo2 - burnCortexA8).

حسنا أقول ...

تصل جميع البطاقات ذات اللوحة الواحدة بسهولة إلى درجة حرارة 80 درجة مع أربع نسخ من cpuburn - التبريد السلبي تافه للتعامل مع مثل هذا التسخين. ومع ذلك ، أعتقد أنه في حالة Vindinium ، لن يكون كل شيء حزينًا جدًا - هناك تغيير دوري في مرحلة العمل ووقت التوقف (في انتظار استجابة من الخادم) ، وبرنامج cpuburn نفسه مصمم لأفضل تبديد للحرارة ، لن يتمكن AI من تحميل المعالج إلى حد ما على الأقل بسبب الحاجة إلى انتظار البيانات من ذاكرة الوصول العشوائي ، لأن مهمتنا لن تكون قادرة على استيعاب ذاكرة التخزين المؤقت للمعالج بشكل كامل.

ومع ذلك ، تظهر ميزة مثيرة للاهتمام هنا - يصل Orange Pi Zero إلى 80 درجة حتى مع نسخة واحدة من cpuburn ، لأن Neo2 ثلاث نسخ كافية ، و Neo لأربع نسخ من الاختبار.

المقاييس ، يحتاج الناس الخبز ومعايير!


قبل كتابة الذكاء الاصطناعي ، تحتاج إلى تحديد السؤال الأكثر أهمية: كم عدد المرات التي تكون فيها أجهزة الكمبيوتر ذات اللوحة الفردية هذه أضعف من أجهزة الكمبيوتر التقليدية؟ لا أصدق أن قطعة صغيرة من السيليكون والمعدن والمنسوجات يمكن أن تفعل أي شيء خارج عن المألوف.

بالنسبة للمعايير ، تم استخدام الأداة المساعدة phoronix-test-suite .

على عكس جميع مشغلات اللوحة الواحدة ، سأسمح لنفسي بتضمين الكمبيوتر المحمول الخاص بي في الاختبار (i5 2450M ، 6 جيجابايت DDR3 ، بدون رسومات منفصلة ، تشغيل Ubuntu 16.04 LTS) لتسهيل تطوير الذكاء الاصطناعي (سيكون من الممكن تشغيل أجزاء معينة من التعليمات البرمجية ومعرفة عدد المرات التي سيتغير فيها وقت تشغيل نفس القطعة على لوح واحد). نحن نستخدم التبريد السلبي فقط. لوحدة إنتاجية نأخذ برتقالة.

وصف الاختبار
John The Ripper هو برنامج تكسير كلمة المرور. اقرأ المزيد عن خوارزمية تشفير السمكة المنتفخة المستخدمة في الاختبار ؛
Smallpt هو عرض عالمي للخفة ، يتكون من 99 سطرًا في C ++.
C-Ray - اختبار أداء المعالج في عمليات النقطة العائمة. هذا الاختبار متعدد الخيوط (16 خيطًا لكل قلب) ، وسوف يصور 8 أشعة من كل بكسل للتنعيم ويولد صورة 1600x1200.
اختبار Himeno هو محلول ضغط Poisson خطي باستخدام طريقة Jacobi .
المدمج في معيار ضغط ملف 7zip.
المعيار باستخدام ffmpeg هو ترميز الفيديو والصوت .

UPD: أثناء الإشراف على المقالة ، تم العثور على جهاز كمبيوتر قديم بالقرب من المنزل ( Intel Pentium 4 (مركز واحد ، وسنتان ، 2003 ، ومعالج عالي العمارة على بنيته) ، 512 ميجابايت DDR x2 ، Radeon 9600XT 128 ميجابايت DDR) ، منذ 13 عامًا ، يمكن لهذا النظام كان يسمى قوي. من أجل مقارنة كيف كان الأمر ، قمت بتثبيت Windows 10 Ubuntu 16.04 LTS ، والذي ، على ما أظن ، تبين أنه فعال للغاية.
كمبيوتر محمولكمبيوتر ديناصورالبرتقالي بي صفرNanoPi NeoNanoPi Neo2
John The Ripper 1.8.0 ، اختبار: السمكة المنتفخة (الببغاوات / ثانية)797 ريال C / S (+ 125٪)313 ريال C / S (+ 125٪)354 ريال C / S394 ريال C / S (+ 11٪)475 ريال C / S (+ 34٪)
Smallpt V1.0.2 (بالثواني)586 ثانية (4.6 مرات أسرع)1214 ثانية (2.2 مرة أسرع)2694 ثانية2240 ثانية (أسرع 1.2 مرة)1289 ثانية (أسرع 2.08 مرة)
C-Ray v1.1 (بالثواني)120.86 ثانية (5.03 مرات أسرع)294.61 ثانية (2.37 مرة أسرع)607.83 ثانية485.71 ثانية (1.25 مرة أسرع)349.51 ثانية (1.74 مرة أسرع)
Himeno Benchmark v3.0 (الببغاوات)1165.11 مفلوبس (+ 8908٪)385.28فلوبس (+ 2455٪)15.08 مفلوبس13.08 MFLOPS (أضعف بنسبة 15٪)37.23 مفلوبس (+ 185٪)
7 ضغط 7 الببغاوات5010 MIPS (+ 585٪ ، انحراف كبير عن المتوسط: 22.77٪)1706 MIPS (+ 88٪)857 MIPS950 MIPS (+ 11٪)1103 MIPS (+ 29٪)
ffmpeg (بالثواني)30.69 ثانية (أسرع 13.25 مرة)81.22 ثانية (أسرع 5 مرات)406.76 ثانية426.94 ثانية (أبطأ 5٪)لم يبدأ الاختبار - خطأ في الترجمة
التكلفة مع مراعاة التسليم والمشعات283.39 دولارًا (+ 2046٪)-13.67 دولار15.97 دولار (+ 17٪)22.97 دولارًا (+ 68٪)

عند دراسة المعلومات على الإنترنت ، أصبح من الواضح أن H2 + هو نسخة معدلة قليلاً من H3 :
H2 + هو نوع من H3 مصمم لوحدات OTT منخفضة الأداء التي تفتقر إلى دعم Gigabit MAC و 4K HDMI.

الأصل:
H2 + هو نوع من H3 ، يستهدف صناديق OTT المنخفضة ، والتي تفتقر إلى دعم إخراج Gigabit MAC و 4K HDMI.

في هذه الحالة ، يصبح من المثير للاهتمام سبب وجود مثل هذا الاختلاف في الأداء والنظام الحراري بين H2 + و H3.

لتلخيص.


من خلال مقارنة ثلاث لوحات فردية مختلفة ، يمكنني تلخيص:

  • يعتبر Orange Pi Zero هو الأرخص على الإطلاق. يعد وجود WiFi على متن الطائرة ميزة جيدة جدًا ، ولكن سرعته لا تزيد عن 4 ميجابت في الثانية (حصلت على نفس القيمة تقريبًا) ، والتي تستبعد استخدامه كخادم ملفات لاسلكي عادي ، ولكن بالنسبة لإنترنت الأشياء فإنه يناسب تمامًا . يجب عليك شراء بعض المبرد على الأقل ، حتى لا تواجه مشاكل في درجات الحرارة غير الطبيعية ، حتى في وقت الخمول. هناك جانب جميل آخر - وجود TV-OUT ، الذي تمكنت من العمل معه ، ولكن إذا كنت تبحث عن لوحة واحدة للعمل في الوضع الرسومي ، فيجب أن تنظر في اتجاه الأجهزة باستخدام HDMI ، لأن دقة الشاشة 720x576 لا ترضي العين. من السهل جدًا أن يتوفر المتجر الرسمي للشركة المصنعة على Aliexpress ؛

  • NanoPi Neo ، على عكس شقيقه الأصغر ، محروم من TV-OUT و Wi-Fi المدمج (للتشغيل اللاسلكي ، سيتعين عليك شراء دونغل Wi-Fi مقابل 2-3 دولار ، ومعدل نقل البيانات المعلن عنه حوالي 150 ميجابت في الثانية) ، و من تلقاء نفسه ، يذهب إلى الجزء الخامس أكثر تكلفة ، ولكن يمكنه إرضاءنا مع تبديد حرارة أقل ، ومبرد صلب صلب ، وأداء أعلى ، والذي سيغطي جميع أوجه القصور في المنصة. من الجدير بالذكر أيضًا مجموعة متنوعة من المكونات التي تقدمها الشركة المصنعة لنسلها. فارق بسيط آخر هو أنه يجب عليك الطلب من الموقع الرسمي ، على الرغم من أن هذا ليس صعبًا في الواقع ؛

  • NanoPi Neo2. إصدار البرامج الثابتة من armbian في المرحلة التجريبية ، والذي يتم التعبير عنه في المشاكل الموضحة في المقالة (عدم القدرة على رؤية التردد ، خطأ في تجميع ffmpeg). ومع ذلك ، حتى في شكلها الخام ، يمكن لمجيء Neo الثاني أن يتباهى بأداء جيد جدًا في الاختبارات (تذكر بنية 64 بت) ، Gigabit Ethernet ، والتي ترفعها على الفور كمفضلة للمهام التي تتطلب أداءً جيدًا وسرعة نقل البيانات السلكية. ولكن لا تنسى Ubuntu Core ، فقد يكون الوضع عليه أفضل ، ولا يقف armbian ثابتًا. من حيث التكلفة ، بالطبع ، هي أكثر من مرة ونصف أعلى من اللون البرتقالي ، لذلك يجدر النظر إلى المنافسين في قطاع أسعارها.

بالنسبة لي ، قررت مواصلة العمل مع Neo و Neo2 ، ووضعت جانبًا برتقاليًا حتى تظهر فكرة مثيرة للاهتمام لمنزل ذكي ، لأن أداء Neo مشابه جدًا لـ Zero ، ولكن بدون مشاكل في درجة الحرارة.

في المقالة التالية ، سنختار لأنفسنا لغة برمجة جديدة ، والتي يمكنك تعلمها فورًا أثناء كتابة الذكاء الاصطناعي.

رابط إلى Vindinium
الرابط إلى Vindinium subreddit هو شيء مفيد للغاية ، هناك يمكنك تتبع تحركاتي في Vindinium
ربط إلى بلدي github مع كمية صغيرة من العمل على Vindinium

سأكون سعيدًا جدًا إذا تم جذب المزيد من الأشخاص إلى هذه اللعبة ، لأنه خلال المنافسة يبدأ المرح!

Source: https://habr.com/ru/post/ar405843/


All Articles