ڈیٹا سینٹرز میں FPGA کی دخول کی ناگزیریت

ڈیٹا سینٹرز میں FPGA کی دخول کی ناگزیریت
آپ کو FPGAs کے لیے پروگرام کرنے کے لیے چپ ڈیزائنر بننے کی ضرورت نہیں ہے، بالکل اسی طرح جیسے آپ کو جاوا میں کوڈ لکھنے کے لیے C++ پروگرامر بننے کی ضرورت نہیں ہے۔ تاہم، دونوں صورتوں میں یہ ممکنہ طور پر مفید ہو گا.

Java اور FPGA دونوں ٹیکنالوجیز کو تجارتی بنانے کا مقصد مؤخر الذکر دعوے کو غلط ثابت کرنا ہے۔ FPGAs کے لیے اچھی خبر - پروگرام قابل منطق ڈیوائس کی ایجاد کے بعد سے گزشتہ 35 سالوں میں درست تجریدی تہوں اور ٹول سیٹ کا استعمال کرتے ہوئے، CPUs، DSPs، GPUs یا حسب ضرورت ASICs کی کسی بھی دوسری شکل کے بجائے FPGAs کے لیے الگورتھم اور ڈیٹا فلو بنانا ہو گیا ہے۔ تیزی سے عام. آسان.

ان کی تخلیق کی حیرت انگیز وقت بندی اس حقیقت سے عیاں ہے کہ جب CPUs ڈیٹا سینٹرز کا واحد کمپیوٹنگ ماڈیول نہیں رہ سکتا تھا تاکہ بہت سے کام انجام دے سکیں - مختلف وجوہات کی بناء پر - FPGAs نے رفتار، کم تاخیر، نیٹ ورکنگ کی صلاحیتوں کی پیشکش کرتے ہوئے اپنی تاثیر حاصل کی۔ اور میموری - جدید FPGA SoCs کی متفاوت کمپیوٹنگ صلاحیتیں، جو تقریباً مکمل کمپیوٹنگ سسٹم ہیں۔ تاہم، FPGAs کو ہائبرڈ سسٹمز میں دیگر آلات کے ساتھ بھی کامیابی کے ساتھ جوڑ دیا گیا ہے، اور، ہماری رائے میں، وہ ابھی کمپیوٹنگ کے درجہ بندی میں اپنی صحیح جگہ تلاش کرنے لگے ہیں۔

اسی لیے ہم نے 22 جنوری کو سان ہوزے میں نیکسٹ FPGA پلیٹ فارم کانفرنس کا اہتمام کیا۔ قدرتی طور پر، دنیا کے اہم FPGA سپلائرز میں سے ایک اور اس علاقے میں ایک علمبردار Xilinx ہے۔ Xilinx کے سینئر نائب صدر اور چیف ٹیکنالوجی آفیسر، Ivo Bolsens نے کانفرنس سے خطاب کیا اور آج ہمیں اس بارے میں اپنے خیالات پیش کیے کہ Xilinx ڈیٹا سینٹرز کے لیے قابل تبدیلی کمپیوٹنگ سسٹم بنانے میں کس طرح مدد کر رہا ہے۔

سسٹم آرکیٹیکٹس اور پروگرامرز کو ایک متضاد ڈیٹا سینٹر کے ساتھ آنے میں کافی وقت لگا، جس میں کمپیوٹر پاور کی مختلف اقسام ہوں گی جو کمپیوٹنگ، اسٹوریج اور نیٹ ورکنگ میں مسائل کو حل کرتی ہیں۔ یہ اس حقیقت کی وجہ سے ضروری معلوم ہوتا ہے کہ مختلف CMOS آلات کا استعمال کرتے ہوئے مور کے قانون پر عمل کرنا مشکل ہوتا جا رہا ہے۔ ابھی کے لیے، ہماری زبان اب بھی CPU پر مرکوز ہے، اور ہم اب بھی "ایپلی کیشن ایکسلریشن" کے بارے میں بات کرتے ہیں، یعنی پروگراموں کو اس سے بہتر بنانا جو اکیلے CPUs پر کیا جا سکتا ہے۔ وقت گزرنے کے ساتھ، ڈیٹا سینٹرز کمپیوٹنگ پاور، ڈیٹا اسٹوریج، اور پروٹوکول کے مجموعے بن جائیں گے جو ہر چیز کو آپس میں جوڑ دیتے ہیں، اور ہم "کمپیوٹنگ" اور "ایپلی کیشنز" جیسی اصطلاحات پر واپس آجائیں گے۔ ہائبرڈ کمپیوٹنگ ڈیسک ٹاپ یا ورچوئل مشینوں پر چلنے والی آج کی کلاؤڈ سروسز کی طرح معمول بن جائے گی، اور کسی وقت ہم صرف یہ بیان کرنے کے لیے "کمپیوٹنگ" کا لفظ استعمال کریں گے کہ وہ کیسے کام کرتی ہیں۔ کسی وقت - اور امکان ہے کہ FPGAs اس دور میں مدد کریں گے - ہم اسے دوبارہ ڈیٹا پروسیسنگ کہیں گے۔

ڈیٹا سینٹرز میں FPGAs کو اپنانے کے لیے ذہنیت میں تبدیلی کی ضرورت ہوگی۔ بولسنز بتاتے ہیں، "آج کی ایپلی کیشنز کو تیز کرنے کے طریقوں کے بارے میں سوچتے وقت، آپ کو ان بنیادی باتوں پر اترنا ہوگا کہ وہ کیسے چلتی ہیں، کون سے وسائل استعمال کیے جاتے ہیں، وقت کہاں خرچ ہوتا ہے،" بولسنز بتاتے ہیں۔ - آپ کو اس عمومی مسئلے کا مطالعہ کرنے کی ضرورت ہے جسے آپ حل کرنے کی کوشش کر رہے ہیں۔ آج ڈیٹا سینٹرز میں چلنے والی بہت سی ایپلیکیشنز وسائل کی بڑی مقدار استعمال کرنے کے لیے پیمانے پر ہیں۔ مثال کے طور پر مشین لرننگ کو لے لیں، جس میں کمپیوٹنگ نوڈس کی ایک بڑی تعداد استعمال ہوتی ہے۔ لیکن جب ہم سرعت کے بارے میں بات کرتے ہیں تو ہمیں نہ صرف کمپیوٹنگ کو تیز کرنے کے بارے میں بلکہ بنیادی ڈھانچے کو تیز کرنے کے بارے میں بھی سوچنے کی ضرورت ہے۔

مثال کے طور پر، بولسنز نے عملی طور پر جس قسم کے مشین لرننگ آپریشنز کا مطالعہ کیا، اس میں تقریباً 50% وقت منتشر کمپیوٹنگ پاور کے درمیان ڈیٹا کو آگے پیچھے منتقل کرنے میں صرف ہوتا ہے، اور صرف بقیہ آدھا وقت خود حساب کتاب میں صرف ہوتا ہے۔

"یہ وہ جگہ ہے جہاں میرے خیال میں FPGA مدد کر سکتا ہے، کیونکہ ہم اس بات کو یقینی بنا سکتے ہیں کہ ایپلیکیشن کے کمپیوٹیشنل اور مواصلاتی پہلوؤں کو بہتر بنایا گیا ہے۔ اور ہم یہ مجموعی بنیادی ڈھانچے کی سطح پر اور چپ سطح پر کر سکتے ہیں۔ یہ FPGAs کے عظیم فوائد میں سے ایک ہے، جو آپ کو مخصوص ایپلیکیشن کی ضروریات کے لیے مواصلاتی نیٹ ورک بنانے کی اجازت دیتا ہے۔ AI کام کے بوجھ میں ڈیٹا کی نقل و حرکت کے مخصوص نمونوں کی بنیاد پر، مجھے ایک پیچیدہ سوئچ پر مبنی فن تعمیر کی ضرورت نظر نہیں آتی۔ آپ بڑے ڈیٹا فلو کے ساتھ نیٹ ورک بنا سکتے ہیں۔ اعصابی نیٹ ورک کی تربیت کے کاموں پر بھی یہی لاگو ہوتا ہے - آپ پیکٹ کے سائز کے ساتھ ایک میش نیٹ ورک بنا سکتے ہیں جو کسی مخصوص کام کے مطابق ہو۔ ایک FPGA کا استعمال کرتے ہوئے، ڈیٹا ٹرانسفر پروٹوکول اور سرکٹ ٹوپولاجی کو ایک مخصوص ایپلی کیشن کے مطابق بہت درست طریقے سے سکیل اور تیار کیا جا سکتا ہے۔ اور مشین لرننگ کے معاملے میں، یہ بھی واضح ہے کہ ہمیں دوہری درستگی کے فلوٹنگ پوائنٹ نمبرز کی ضرورت نہیں ہے، اور ہم اسے بھی ایڈجسٹ کر سکتے ہیں۔"

ایف پی جی اے اور سی پی یو یا کسٹم ASIC کے درمیان فرق یہ ہے کہ مؤخر الذکر کو فیکٹری میں پروگرام کیا جاتا ہے، اور اس کے بعد آپ ڈیٹا کی اقسام یا عناصر کی گنتی کے بارے میں یا ڈیٹا کی نوعیت کے بارے میں اپنا خیال نہیں بدل سکتے۔ آلہ کے ذریعے بہاؤ. اگر آپریٹنگ حالات بدل جاتے ہیں تو FPGAs آپ کو اپنا خیال بدلنے کی اجازت دیتے ہیں۔

ماضی میں، یہ فائدہ ایک قیمت پر آیا، جب FPGA پروگرامنگ دل کے بیہوش ہونے کے لیے نہیں تھی۔ ضرورت اس بات کی ہے کہ FPGA کمپائلرز کو کھولنے کے لیے ان ٹولز کے ساتھ بہتر طور پر ضم کیا جائے جو پروگرامرز C، C++، یا Python میں CPU- متوازی ایپلی کیشنز لکھنے کے لیے استعمال کرتے ہیں، اور کچھ کام لائبریریوں کو آؤٹ سورس کرنے کے لیے جو FPGAs پر طریقہ کار کو تیز کرتے ہیں۔ Vitis مشین لرننگ اسٹیک یہی کرتا ہے، ML پلیٹ فارمز جیسے Caffe اور TensorFlow کو طاقت دیتا ہے، روایتی AI ماڈلز کو چلانے کے لیے لائبریریوں کے ساتھ یا FPGA صلاحیتوں کو ویڈیو ٹرانس کوڈنگ، ویڈیو آبجیکٹ کی شناخت، اور ڈیٹا اینالیٹکس جیسے کاموں میں شامل کرتا ہے۔، مالیاتی رسک مینجمنٹ اور کسی تیسرے - پارٹی لائبریریاں۔

یہ تصور Nvidia کے CUDA پروجیکٹ سے زیادہ مختلف نہیں ہے، جو ایک دہائی قبل شروع کیا گیا تھا، جو GPU ایکسلریٹر کے متوازی کمپیوٹنگ کو آف لوڈ کرتا ہے، یا AMD کے ROCm ٹول کٹ سے، یا Intel کے OneAPI پروجیکٹ کے وعدے سے، جو مختلف CPUs، GPUs اور FPGA پر چلنا چاہیے۔

سوال صرف یہ ہے کہ ان تمام ٹولز کو آپس میں کیسے جوڑا جائے گا تاکہ کوئی بھی شخص اپنی صوابدید پر کمپیوٹنگ پاورز کا ایک سیٹ پروگرام کر سکے۔ یہ اہم ہے کیونکہ FPGAs کسی بھی دستیاب CPUs سے زیادہ پیچیدہ، زیادہ پیچیدہ ہو گئے ہیں۔ وہ جدید ترین مینوفیکچرنگ کے عمل اور جدید ترین چپ پیکیجنگ ٹیکنالوجیز کا استعمال کرتے ہوئے تیار کیے جاتے ہیں۔ اور انہیں اپنا مقام مل جائے گا، کیونکہ ہم مزید وقت، پیسہ، توانائی اور ذہانت کو ضائع نہیں کر سکتے - یہ سب بہت مہنگے وسائل ہیں۔

"FPGAs تکنیکی فوائد پیش کرتے ہیں،" Bolsens کہتے ہیں۔ - اور یہ موافقت اور دوبارہ ترتیب دینے کے بارے میں صرف عام اشتہار نہیں ہے۔ تمام اہم ایپلی کیشنز میں - مشین لرننگ، گراف تجزیہ، تیز رفتار تجارت وغیرہ۔ - وہ کسی خاص کام کو نہ صرف ڈیٹا ڈسٹری بیوشن پاتھ، بلکہ میموری آرکیٹیکچر کے مطابق ڈھالنے کی صلاحیت رکھتے ہیں - ڈیٹا چپ کے اندر کیسے حرکت کرتا ہے۔ FPGAs میں دیگر آلات کے مقابلے میں بہت زیادہ میموری بھی ہوتی ہے۔ اس بات کو بھی مدنظر رکھا جانا چاہیے کہ اگر کوئی کام ایک FPGA میں فٹ نہیں ہوتا ہے، تو آپ متعدد CPUs یا GPUs میں کاموں کو اسکیل کرتے وقت آپ کو ان نقصانات کا سامنا کیے بغیر متعدد چپس پر اسکیل کرسکتے ہیں۔"

ماخذ: www.habr.com

نیا تبصرہ شامل کریں