خبریں
خبریں
CUDA ٹرانسپلانٹ کیا گیا ہے، اور Risc-v-based GPU چل رہا ہے؟
2022-03-17 459

RISC-V کمپیوٹنگ میں سب سے زیادہ گرم موضوعات میں سے ایک رہا ہے کیونکہ یہ انسٹرکشن سیٹ آرکیٹیکچر (ISA) وسیع پیمانے پر تخصیص کی اجازت دیتا ہے اور پورے اوپن سورس کے علاوہ، لائسنس سے پاک فائدہ کو سمجھنا آسان ہے۔ یہاں تک کہ RISC-V ISA کی بنیاد پر عام مقصد کے GPU کو ڈیزائن کرنے کا ایک پروجیکٹ بھی ہے، اور اب ہم Nvidia کی CUDA سافٹ ویئر لائبریری کو Vortex RISC-V GPGPU پلیٹ فارم پر پورٹ کرتے ہوئے دیکھ رہے ہیں۔


Nvidia کا CUDA (کمپیوٹنگ یونیفائیڈ ڈیوائس آرکیٹیکچر) ایک منفرد کمپیوٹنگ پلیٹ فارم اور ایپلیکیشن پروگرامنگ انٹرفیس (API) کی نمائندگی کرتا ہے جو Nvidia کے گرافکس کارڈز کی لائن پر چلتا ہے۔ جب ایک درخواست CUDA سپورٹ کے لیے لکھی جاتی ہے، جیسے ہی سسٹم کو CUDA پر مبنی GPU کا پتہ چلتا ہے، اس کو کوڈ کی بہت زیادہ GPU ایکسلریشن مل جاتی ہے۔


آج، محققین نے RISC-V GPGPU پروجیکٹ پر CUDA سافٹ ویئر ٹول کٹ سپورٹ کو فعال کرنے کے طریقے کی چھان بین کی جسے Vortex کہتے ہیں۔ Vortex RISC-V GPGPU کو RV32IMF ISA کی بنیاد پر پورے نظام میں RISC-V GPU فراہم کرنے کے لیے ڈیزائن کیا گیا ہے۔ اس کا مطلب ہے کہ 32 بٹ کور 1 کور سے 32 کور GPU ڈیزائن تک پیمانہ کر سکتے ہیں۔ یہ OpenCL 1.2 گرافکس API کو سپورٹ کرتا ہے، اور آج یہ کچھ CUDA آپریشنز کو بھی سپورٹ کرتا ہے۔


محققین وضاحت کرتے ہیں: "...اس پروجیکٹ میں، ہم آخر سے آخر تک CUDA کی منتقلی کو سپورٹ کرنے کے لیے ایک پائپ لائن کی تجویز اور تعمیر کرتے ہیں: پائپ لائن CUDA سورس کوڈ کو بطور ان پٹ قبول کرتی ہے اور انہیں توسیعی RISC-V GPU فن تعمیر پر عمل میں لاتی ہے۔ پائپ لائن کئی مراحل پر مشتمل ہے: CUDA سورس کوڈ کا NVVM IR میں ترجمہ کریں، NVVM IR کو SPIR-V IR میں تبدیل کریں، RISC-V بائنری حاصل کرنے کے لیے SPIR-V IR کو POCL میں آگے کریں، اور آخر میں توسیع شدہ RISC-V GPU بائنری فائل آرکیٹیکچر پر عمل کریں۔ "



اس عمل کو اوپر کی تصویر میں دیکھا گیا ہے، جس میں اسے کام کرنے کے تمام اقدامات دکھائے گئے ہیں۔ سادہ الفاظ میں، CUDA سورس کوڈ کی نمائندگی ایک انٹرمیڈیٹ نمائندگی (IR) فارمیٹ میں کی جاتی ہے جسے NVVM IR کہتے ہیں، اوپن سورس LLVM IR کی بنیاد پر۔ اسے بعد میں اسٹینڈرڈ پورٹ ایبل انٹرمیڈیٹ ریپریزنٹیشن (SPIR-V) IR میں تبدیل کر دیا گیا، جسے پھر OpenCL معیار کے پورٹیبل اوپن سورس کے نفاذ میں آگے بڑھایا گیا، جسے POCL کہا جاتا ہے۔ چونکہ Vortex OpenCL کو سپورٹ کرتا ہے، اس لیے یہ تعاون یافتہ کوڈ فراہم کرتا ہے اور اسے بغیر کسی پریشانی کے چلا سکتا ہے۔


اس پیچیدہ عمل کے بارے میں مزید تفصیلات کے لیے، اصل مضمون کو پڑھنے کے لیے نیچے کلک کریں۔ اہم بات یہ ہے کہ، آپ کو CUDA کو RISC-V GPGPUs پر چلانے کے لیے ان محققین کا شکریہ ادا کرنا چاہیے۔ اگرچہ یہ ابھی کے لیے صرف ایک چھوٹا قدم ہے، یہ ایک ایسے دور کا آغاز ہو سکتا ہے جہاں RISC-V کا استعمال کمپیوٹنگ ایپلی کیشنز کو تیز کرنے کے لیے کیا جاتا ہے، جیسا کہ آج Nvidia کے GPU لائن اپ کی طرح ہے۔


توسیعی پڑھنا: کیا RISC-V GPU کو تبدیل کر سکتا ہے؟


کیا RISC-V GPU لین دین کو سنبھال سکتا ہے؟ یہ ایک کام جاری ہے جسے حسب ضرورت پروگرام اور اسکیل ایبلٹی کے ساتھ ایک چھوٹا سا ایریا موثر ڈیزائن بنا کر حاصل کیا جا سکتا ہے۔  
  کوئی بھی جس نے GPU فن تعمیر کا مطالعہ کیا ہے وہ جانتا ہے کہ یہ ویکٹر پروسیسر کی SIMD تعمیر ہے۔ یہ ایک انتہائی موثر متوازی پروسیسر ہے جسے چلانے کے سمیولیشنز اور زبردست گیمز سے لے کر روبوٹس کو AI حاصل کرنے کا طریقہ سکھانے اور ہوشیار لوگوں کو اسٹاک مارکیٹ میں ہیرا پھیری کرنے میں مدد کرنے کے لیے استعمال کیا جاتا ہے۔ یہاں تک کہ یہ میرے گرامر کی جانچ پڑتال کرتا ہے جب میں یہ لکھتا ہوں۔  
  لیکن GPU فیلڈ ایک نجی فیلڈ بن گیا ہے، اور اس کا اندرونی کام IP اور موثر AMD، Intel، اور Nvidia جیسے ڈویلپرز کی فراہمی۔ اگر 3D گرافکس اور میڈیا پروسیسنگ کے لیے ڈیزائن کردہ گرافکس ہدایات کا ایک نیا سیٹ موجود ہو تو کیا ہوگا؟ ٹھیک ہے، وہاں ہو سکتا ہے.  
  نئی ہدایات RISC-V بنیادی ویکٹر انسٹرکشن سیٹ پر بنائی جا رہی ہیں۔ وہ بنیادی RISC-V ISA کی روح میں تہہ دار ایکسٹینشن کے طور پر گراف کے لیے مخصوص ڈیٹا کی نئی اقسام کے لیے تعاون شامل کریں گے۔ ویکٹر، پہلے کی ریاضی، پکسل اور ساخت، اور Z/Frame بفر آپریشنز کو سپورٹ کرتا ہے۔ یہ فیوزڈ CPU-GPU ISA ہو سکتا ہے۔ لائبریری - RISC 3D گروپ اسے RV64X (شکل 1) کہتا ہے کیونکہ ہدایات 64 بٹ لمبی ہوں گی (32 بٹس ایک مضبوط ISA کو سپورٹ کرنے کے لیے کافی نہیں ہوں گے)۔  
 

شکل 1. RV64X گرافکس پروسیسر میں مخصوص ٹیکسچر یونٹس اور فنکشن بلاکس کے علاوہ متعدد DSPs شامل ہیں۔
 
  گروپ نے کہا کہ ان کی حوصلہ افزائی اور مقصد حسب ضرورت پروگرام اور توسیع پذیری کے ساتھ ایک چھوٹا، موثر ڈیزائن بنانا تھا۔ اسے کم لاگت آئی پی کی ملکیت اور ترقی فراہم کرنی چاہیے، تجارتی مصنوعات سے مقابلہ نہیں کرنا چاہیے۔ اسے FPGA اور ASIC اہداف پر لاگو کیا جا سکتا ہے اور یہ مفت اور اوپن سورس ہے۔ اصل ڈیزائن کم طاقت والے مائیکرو کنٹرولرز کو نشانہ بناتا ہے جو Khronos Vulkan کے موافق ہوں گے اور دوسرے APIs (OpenGL، DirectX، وغیرہ) کو سپورٹ کریں گے۔  
               

GPU + RISC-V


ٹارگٹ ہارڈویئر میں GPU فنکشنل یونٹ اور RISC-V کور ہوگا۔ یہ مجموعہ پروسیسرز کی شکل میں آتا ہے جہاں 64 بٹ ہدایات کو اسکیلر ہدایات کے طور پر انکوڈ کیا جاتا ہے۔ نقطہ یہ ہے کہ مرتب کرنے والا پریفکسڈ اسکیلر اوپکوڈس سے SIMD ہدایات تیار کرے گا۔ دیگر خصوصیات میں تغیر پذیر مسائل، پیشین گوئی پر مبنی SIMD پسدید شامل ہیں۔ برانچ ٹریکنگ؛ قطعی مستثنیات؛ اور ایک ویکٹر فرنٹ اینڈ۔ ڈیزائن میں 16 بٹ فکسڈ پوائنٹ ورژن اور 32 بٹ فلوٹنگ پوائنٹ ورژن شامل ہوگا۔ سابقہ ​​FPGA کے نفاذ کے لیے موزوں ہے۔  
  ٹیم نے کہا: "غیر استعمال شدہ CPU میموری کی جگہ یا غیر استعمال شدہ CPU میموری کی جگہ کو GPU میموری کی جگہ پر 3D API کال بھیجنے کے لیے RPC/IPC کال میکانزم کو استعمال کرنے کی ضرورت نہیں ہے اور اس کے برعکس،"  
  "فیوزڈ" CPU-GPU ISA اپروچ کا فائدہ یہ ہے کہ معیاری گرافکس پائپ لائنز کو مائکرو کوڈ میں استعمال کیا جا سکتا ہے، اور کسٹم شیڈرز کو سپورٹ کیا جا سکتا ہے۔ رے ٹریسنگ ایکسٹینشن بھی شامل کر سکتے ہیں۔  
  ڈیزائن وی بلاک فارمیٹ میں ہوگا (لائبر جی پی یو کی کوشش سے):  
 
  • یہ VLIW کی طرح ہے (لیکن واقعی نہیں)۔
  • انسٹرکشن بلاکس سے پہلے رجسٹر مارکر ہوتے ہیں جو اس بلاک کے اندر اسکیلر ہدایات کے لیے اضافی سیاق و سباق فراہم کرتے ہیں۔
  • سب بلاکس میں ویکٹر کی لمبائی، گردش، ویکٹر/چوڑائی اوورلے اور پیشین گوئی شامل ہیں۔
  • یہ سب اسکیلر اوپکوڈز میں شامل کیا جاتا ہے!
  • یہاں کوئی ویکٹر آپکوڈ نہیں ہیں (اور نہ ہی کسی کی ضرورت ہے)۔
  • ویکٹر کے سیاق و سباق میں، یہ اس طرح ہوتا ہے: اگر اسکیلر اوپکوڈ ایک رجسٹر استعمال کرتا ہے، اور وہ رجسٹر ویکٹر کے سیاق و سباق میں درج ہے، تو ویکٹر موڈ کو چالو کیا جائے گا۔
  • ایکٹیویشن ہارڈ ویئر لیول فار لوپ کا سبب بنتا ہے جس سے لگاتار ایک سے زیادہ اسکیلر آپریشنز خارج ہوتے ہیں (صرف ایک کی بجائے)۔
  • لاگو کرنے والے اپنی مرضی کے مطابق لوپس کو نافذ کرنے کے لیے آزاد ہیں - SIMD، ملٹی ایشو، سنگل ایگزیکیوٹ؛ بہت کچھ.

  RV32-V ویکٹر 8 سے 16 عناصر کے 32-bit، 2-bit یا 4-bit/ عنصر ویکٹر آپریشنز کو ہینڈل کرتا ہے۔ 3 بٹ اور 64 بٹ فکسڈ اور فلوٹنگ پوائنٹ XYZW پوائنٹس کے لیے عمومی 128D گرافکس رینڈرنگ پائپ لائن کے لیے وقف ہدایات بھی ہوں گی۔ 8-، 16-، 24- اور 32-بٹ RGBA پکسلز؛ 8 بٹ، 16 بٹ UVW ٹیکسلز فی جزو؛ اور روشنی اور مادی ترتیبات (IA, ka, Id, kd, Is, ks, وغیرہ)۔  
  انتساب ویکٹر کو 4×4 میٹرکس کے طور پر دکھایا گیا ہے۔ یہ نظام مقامی طور پر 2×2 اور 3×3 میٹرکس کو سپورٹ کرے گا۔ ویکٹر سپورٹ AI اور مشین لرننگ ایپلی کیشنز میں عام 8 بٹ انٹیجر ڈیٹا کی اقسام کا استعمال کرتے ہوئے عددی نقالی کے لیے بھی موزوں ہو سکتا ہے۔  
  کسٹم راسٹرائزرز جیسے اسپلائنز، سب ڈیو سرفیسز اور پیچ کو ڈیزائن میں شامل کیا جا سکتا ہے۔ یہ طریقہ حسب ضرورت پائپ لائن کے مراحل، حسب ضرورت جیومیٹری/پکسل/فریم بفر کے مراحل، حسب ضرورت ذیلی تقسیم کرنے والے، اور حسب ضرورت انسٹینسنگ آپریشنز کو شامل کرنے کی بھی اجازت دیتا ہے۔  
             

آر وی 64 ایکس


RV64X حوالہ کے نفاذ میں شامل ہیں:
 
 
  • ہدایات/ڈیٹا SRAM کیش (32 kB)

  • Microcode SRAM (8 kB)

  • ڈوئل فنکشن انسٹرکشن ڈیکوڈر (RV32V اور X کے لیے ہارڈ وائرڈ؛ حسب ضرورت ISA کے لیے مائیکرو کوڈڈ انسٹرکشن ڈیکوڈر)

  • کواڈ ویکٹر ALU (32-bit/ALU-fixed/float)

  • 136 بٹ رجسٹر فائل (1k عناصر)

  • خصوصی تقریب یونٹ

  • ساخت یونٹ

  • قابل ترتیب مقامی فریم بفر


  RV64X ایک قابل توسیع فن تعمیر ہے (شکل 2)۔ اس کا فیوژن طریقہ نیا ہے، جیسا کہ حسب ضرورت ڈیٹا کی اقسام کے لیے قابل ترتیب رجسٹروں کا استعمال ہے۔ صارف کی وضاحت کردہ SRAM پر مبنی مائیکرو کوڈ کا استعمال ایکسٹینشن کو نافذ کرنے کے لیے کیا جا سکتا ہے جیسے کہ کسٹم راسٹرائزر مراحل، رے ٹریسنگ، مشین ویژن اور مشین لرننگ۔ ایک ہی ڈیزائن کو اسٹینڈ اکیلے گرافکس مائکرو کنٹرولر یا اسکیل ایبل شیڈر یونٹس کے ساتھ ملٹی کور سلوشن پر لاگو کیا جا سکتا ہے۔  
 

شکل 2۔ RV64X ایک سادہ لو اینڈ ڈیزائن (بائیں) سے ملٹی کور سلوشن (دائیں) تک پیمانہ کر سکتا ہے۔  
  RISC-V ایڈریس اسکیل ایبلٹی اور کثیر لسانی میں گرافکس کی توسیع۔ یہ اعلی سطح کے استعمال کے معاملات کو قابل بناتا ہے جو مزید جدت کا باعث بنتے ہیں۔  
             

اس کے بعد کیا ہے


RV64X تفصیلات اب بھی ابتدائی ترقی میں ہے اور تبدیلی کے تابع ہے۔ ایک ڈسکشن فورم قائم کیا جا رہا ہے۔ فوری مقصد انسٹرکشن سیٹ سمیلیٹر کا استعمال کرتے ہوئے ایک مثال پر عمل درآمد کرنا ہے۔ یہ اوپن سورس پروجیکٹس کے بطور ڈیزائن کردہ کسٹم آئی پی کے سورس آئی پی اور ایف پی جی اے کے نفاذ کا استعمال کرتے ہوئے کھلے گا۔





دستبرداری: یہ مضمون "سیمک کنڈکٹر انڈسٹری آبزرویشن" سے دوبارہ تیار کیا گیا ہے۔ یہ مضمون صرف مصنف کی ذاتی رائے کی نمائندگی کرتا ہے، Sac Micro اور صنعت کی رائے نہیں، صرف دوبارہ پرنٹ کرنے اور شیئر کرنے کے لیے، سپورٹ دانشورانہ املاک کے حقوق کے تحفظ کے لیے، براہ کرم دوبارہ پرنٹ کرنے کے لیے اصل ماخذ اور مصنف کی نشاندہی کریں۔ اگر کوئی خلاف ورزی ہوتی ہے تو اسے حذف کرنے کے لیے ہم سے رابطہ کریں۔

whatsapp

Service Hotline

tel: +86 755 83044319

WhatsApp

Whatsapp:+8618073002950