لماذا يفضل مطوري الذكاء الاصطناعي المعالجة على كارد الشاشة بدل من CPU

نسولف اليوم عن موضوع مهم لمطوري تطبيقات الذكاء الاصطناعي او حتى الباحثين بهذا المجال وهو ليش هؤلاء يفضلون تدريب المودلز (نماذج الذكاء الاصطناعي ) على كارت الشاشة بدل المعالج ؟ ايضا ليش بعملية تعدين العملات الرقمية ايضا يفضلون كارت الشاشة على المعالج ؟
كبداية اي تطبيق هو عبارة عن مجموعة من الاوامر والبيانات الي تحتاج لمعالج يعالجها ، فهنا لو كان عندنا بيانات كبيرة وايضا عمليات معالجة كثيرة فنحتاج الى معالج عالي السرعة هذا بالطرق التقليدية ويبدي ينفذ سطر بعد سطر بعملية تسلسلية ، بعدين من ظهر موضوع المعالجات الداخلية Cores حل المشكلة ،لكن مقابل هذا تطورت التطبيقات اكثر واحتاجت معالجة اكثر والبيانات صارت اكبر واكبر .
هنا رجعوا لتقنية مثيرة للاهتمام وهي المعالجة المتوازية يسموها Prarallel Computing  وهذي تتطلب معمارية المعالج يكون بيها اكثر من معالج وايضا سوفت يدير هالشي .
طيب وشنو علاقة هذا بهذا ، اني اكولك هنا صار التطبيق ممكن نوزعه على جميع الكورز بالمعالج بدل كور واحد فيكون التنفيذ اسرع ، لكن ؟ شكم كور بالمعالج ؟
حاليا بالحاسبات الشخصية ممكن يوصل ل١٦ كور وسعره يكون غالي ، طيب واذا عندك معالجات حتى ١٦ كور متنفع وياه ؟ اي نعم بعض نماذج الذكاء الاصطناعي تحتاج اكثر من هذا ! والحل ؟
هنا قالوا ليش ما نستفاد من كارت الشاشة ؟ اي نعم ، الشركات الي تصنع هذي الكارتات مثل Nvidia  و AMD استغلت الوضع حتى تخلي كارت الشاشة مو مجرد معالج رسومي بسيط ، فغيرو بمعمارياتهم و عملوا منصات برمجية للمطورين حتى يرغبون الناس بكارت الشاشة .
فمثلا انفيديا عملت منصة سمتها CUDA ووفرت بيها كثير اشياء مثل ادارة الميموريز والتولكتز .. الخ والاقوى وفرت كورات جدا كثيرة بالكارت مشابهه لكورات المعالج CPU سمتها CUDA Cores وايضا كورات لمكتبة Tensor  .
خلي نضرب مثل تخيل اعلى معالج بالسيرفرات يوصل عدد الكورات بي تقريبا ١٢٨ ، لكن كارت الشاشة مثلا RTX  3090  بي اكثر من عشرة الاف   CUDA Cores !!!
لكن ! هذي المنصة وكوراتها و Tensor Cores مو لكلشي تستخدمها ، وانما للمطورين يكدرون يستخدمونها حتى ينفذون (يدربون ) مودلاتهم على هذي الكورات بالتوازي  ، او التعدين بالعملات الرقمية يعني الموضوع برمجي. حتى بالسيارات ذاتية القيادة هذي الكارتات مهمة جدا بيها بالمعالجة بسبب ضخامة البيانات.
وايضا حتى مكتبة Tensor الخاصة بتطبيقات الذكاء  .
طيب و AMD شصار معاه ؟ ايضا نزلت منصة مشابه لCUDA سمتها ROCm لكن مو بقوة CUDA   .
لهذا السبب المعالجة الي تكون بكارت الشاشة (المتوازية) اسرع بكثير .
الموضوع اعلاه مختصر بسيط ، فيه تفاصيل كثيرة لم نتطرق لها .

مفهوم Trigger في قواعد البيانات

من المفاهيم المهمة في قواعد البيانات هو Trigger (طبعا ترجمته للعربي تنطي غير معنى ) ، هذا قصته مشابهه لStored Procedure (واذا ماعندك فكرة عنها فعادي ).
خلي نتخيل سيناريو معين ، عندك جدول معين بقاعدة البيانات ،وتريد كلما تعدل على بيانات بداخله يحفظ البيانات الجديدة والقديمة ! طبعا هذا السيناريو يتعلق ب  Versions يعني تحتفظ بأكثر من نسخة للبيانات الي صارت عليها تغييرات .
المهم بالطرق التقليدية لحل هذا السيناريو تسوي جدول ثاني ، وتربطه بالجدول الاساسي بعلاقة one to many ، وبعدين عند اي تحديث تعمل اضافة insert للجدول الثاني  قبل استعلام update على الجدول الاول.
هنا لو ردنا نطبق مفهوم Trigger فممكن تكتب كود(مثلا اضافة للجدول الثاني ) وعند اي تعديل يصير على الجدول الاول فأن الكود يشتغل بصورة تلقائية .
هذي فكرة  trigger انو يكون عندك كود يشتغل كلما يصير حدث على جدول معين ، والحدث نقصد مثلا اضافة سجل ، حذف سجل او تعديل على سجل (هذا النوع من التريجر يسموه DML ) ، او عند حذف جدول ، اضافة جدول ، او التعديل على جدول (وهذا النوع يسموه DDL Trigger ).

محاكاة شبكات الطرق والتقاطعات

واحد من اسهل وافضل انظمة المحكاة للطرق والتقاطعات هو SUMO ، هذا النظام مفتوح المصدر ، وتم تطويره من قبل وكالة الفضاء الالمانية .
طبعا النظام جدا مفيد للاشخاص الي يدرسون موضوع تخطيط الطرق والتقاطعات بأستخدام الذكاء الاصطناعي ، بالاضافة ممكن تطبيق اي خوارزمية من خلال نمذجة المحاكاة والعمل عليها برمجيا .
واستدعاء شبكة خرائط الطرق ليعمل لها محاكاة سواء من OpenstreetMap او اي نظام اخر.
اعتقد يدعم ثلاث لغات برمجية البايثون ، الجافا ، السي بلس بلس .
كذلك بداخله مجموعة حزم مثلا واحدة لرسم الخرائط ، واحدة للنمذجة .. الخ .
حتى جماعة transition of control ToC ممكن يستفادون منه .
https://www.eclipse.org/sumo/