ڈینیل المیڈا، جو کولیبورا میں ویڈیو کوڈیک ڈیولپمنٹ پر کام کرتے ہیں، نے ڈویلپر میلنگ لسٹ میں پوسٹ کیا۔ Linux- ARM Mali GPUs کے لیے Tyr ڈرائیور کا ابتدائی نفاذ جو کمانڈ سٹریم فرنٹ اینڈ (CSF) ٹیکنالوجی، جیسے Mali G310، G510، اور G710 کا استعمال کرتا ہے۔ ڈرائیور کوڈ Rust میں لکھا گیا ہے اور کوڈ کی صرف 600 لائنوں پر مشتمل ہے۔ ٹائر ڈرائیور پر کام کولیبورا، آرم اور گوگل مشترکہ طور پر کر رہے ہیں۔
نیا ڈرائیور بنانے کا فریم ورک خلاصہ rust_platform_driver ڈرائیور اور Nova ڈرائیور کے اجزاء کا استعمال کرتا ہے، جو NVIDIA GPUs کے لیے تیار کیا گیا ہے، جسے Rust میں لکھا گیا ہے اور جزوی طور پر 6.15 کرنل میں شامل کیا گیا ہے۔ مالی GPU کے ساتھ تعامل کی فعالیت موجودہ Panthor (Direct Rendering Manager) DRM ڈرائیور سے پورٹ کی گئی ہے، جو C میں لکھا گیا ہے۔ Tyr ڈرائیور کا uAPI Panthor ڈرائیور کے uAPI سے مماثل ہے، جو اس کے ساتھ موجودہ صارف کی جگہ کے اجزاء کو استعمال کرنے کی اجازت دیتا ہے۔
CSF ٹیکنالوجی، جو مالی GPUs کی 10 ویں نسل سے استعمال ہوتی ہے، ڈرائیور کے کچھ افعال کو فرم ویئر کی طرف منتقل کرنے اور GPU پر کام کے عمل کو منظم کرنے کے لیے ایک نیا ماڈل استعمال کرنے کے لیے قابل ذکر ہے۔ CSF انٹرفیس والے GPUs میں، کاموں کا سلسلہ بھیجنے پر مبنی ماڈل کے بجائے، کمانڈ فلو پر مبنی ماڈل فرم ویئر سائیڈ پر کمانڈ فلو قطار کے شیڈولنگ کے ساتھ استعمال کیا جاتا ہے۔ شیڈیولر کے کام کو منظم کرنے کے لیے، GPU میں ایک علیحدہ Cortex-M7 مائیکرو کنٹرولر بنایا گیا ہے، اور CSF ہدایات پر عمل کرنے کے لیے ایک خصوصی کمانڈ ایگزیکیوشن یونٹ (کمانڈ ایگزیکیوشن یونٹ) فراہم کیا گیا ہے۔
ٹائر کی فعالیت اب بھی Panthor ڈرائیور سے پیچھے ہے، لیکن ڈویلپرز اس وقت تک بتدریج فرق کو کم کرنے کا ارادہ رکھتے ہیں جب تک کہ ڈرائیور کی صلاحیتوں میں برابری حاصل نہ ہوجائے۔ لاپتہ خصوصیات کو زنگ میں ڈرائیور بنانے کے لیے دانا میں اضافی تجریدوں کو ضم کرنے کی ضرورت ہوتی ہے، لہذا ٹائر ڈرائیور کی ترقی دانا میں ان تجریدوں کے اضافے کے ساتھ ہم آہنگ ہو جائے گی۔ مثال کے طور پر، کرنل میں ابھی تک GPUs کے لیے Rust ڈرائیوروں میں میموری میپنگ کی صلاحیت نہیں ہے، جو GPUVM پیچ سیٹ میں تیار کیے جا رہے ہیں، جسے ابھی تک اپنایا نہیں گیا ہے۔
ماخذ: opennet.ru
