C++ AMP
C + + ایکسلریٹڈ ماسیو پیرالیلزم (C + + AMP) ایک مقامی پروگرامنگ ماڈل ہے جس میں ایسے عناصر شامل ہیں جو C + + پروگرامنگ زبان اور اس کی رن ٹائم لائبریری میں پھیلے ہوئے ہیں۔ یہ ایسے پروگرام لکھنے کا ایک آسان طریقہ فراہم کرتا ہے جو ڈیٹا متوازی ہارڈ ویئر، جیسے گرافکس کارڈز (جی پی یو) پر مرتب اور انجام دیتے ہیں۔ ویژول اسٹوڈیو 2022 (ورژن 17) سے شروع کرتے ہوئے، سی + + اے ایم پی کو فرسودہ قرار دیا گیا ہے، جو ویژول اسٹوڈیو 2022 سے آگے اس کی حمایت کے خاتمے کی نشاندہی کرتا ہے۔ سی + + اے ایم پی ایک لائبریری ہے جسے ڈائریکٹ ایکس 11 پر لاگو کیا گیا ہے اور مائیکروسافٹ کی طرف سے ڈیٹا متوازی کو براہ راست سی + + میں لاگو کرنے کے لیے ایک کھلی وضاحت ہے۔ اس کا مقصد پروگرامنگ جی پی یوز کو ڈویلپر کے لیے آسان بنانا ہے جس میں مہارت کی ایک رینج کی حمایت کی جائے (ایسی صورت میں سسٹم اپنی پوری کوشش کرتا ہے) زیادہ باریک کنٹرول کے قابل ہونے تک، لیکن پھر بھی پورٹیبل ہے۔ مائیکروسافٹ کے نفاذ میں، جو کوڈ جی پی یو پر نہیں چلایا جا سکتا وہ اس کے بجائے ایک یا زیادہ سی پی یو پر واپس آ جائے گا اور ایس ایس ای ہدایات کا استعمال کرے گا۔ مائیکروسافٹ کا نفاذ بصری اسٹوڈیو 2012 میں شامل ہے، جس میں ڈیبگر اور پروفائلر سپورٹ شامل ہے۔ مائیکروسافٹ کی طرف سے ابتدائی C + + AMP ریلیز کے لیے کم از کم ونڈوز 7 یا ونڈوز سرور 2008 R2 کی ضرورت ہوتی ہے۔ چونکہ C + + AMP ایک کھلی وضاحت ہے اس لیے توقع کی جاتی ہے کہ وقت کے ساتھ مائیکروسافٹ سے باہر نفاذ ظاہر ہوں گے۔ اس کی ایک ابتدائی مثال شیولین پارک ہے، جو انٹیل کا C + + AMP کا کلانگ/LLVM اور اوپن سی ایل پر تجرباتی نفاذ ہے۔ 12 نومبر 2013 کو ایچ ایس اے فاؤنڈیشن نے ایک سی + + اے ایم پی مرتب کا اعلان کیا جو اوپن سی ایل، اسٹینڈرڈ پورٹیبل انٹرمیڈیٹ ریپریزنٹیشن (ایس پی آئی آر)، اور ایچ ایس اے انٹرمیڈیٹ لینگویج (ایچ ایس اے آئی ایل) کو آؤٹ پٹ کرتا ہے جو موجودہ سی + + اے ایم پی تفصیلات کی حمایت کرتا ہے۔ ماخذ https://github.com/RadeonOpenCompute/hcc پر دستیاب ہے۔ سی + + اے ایم پی سپورٹ کو متروک سمجھا جاتا ہے اور موجودہ آر او سی ایم 1.9 سیریز اس کی حمایت کرنے والی آخری ہوگی۔ سی + + اے ایم پی کے پیچھے بنیادی تصورات، جیسے متوازی اور متنوع پروگرامنگ خصوصیات کو ظاہر کرنے کے لیے سی + + کلاسوں کا استعمال، ایس وائی سی ایل معیار کے لیے متاثر کن رہے ہیں۔ خصوصیات مائیکروسافٹ نے پابندی (ایم پی) خصوصیت شامل کی، جسے کسی بھی فنکشن (بشمول لیمبڈاس) پر لاگو کیا جا سکتا ہے تاکہ یہ اعلان کیا جا سکے کہ فنکشن کو سی + + اے ایم پی ایکسلریٹر پر انجام دیا جا سکتا ہے۔ مرتب کرنے والا خود بخود ایک کمپیوٹ کرنل تیار کرے گا، انتظام کے بوائیلر پلیٹ کو بچائے گا اور اسے ایک علیحدہ زبان استعمال کرنی ہوگی۔ پابندی والا کلیدی لفظ مرتب کرنے والے کو ہدایت دیتا ہے کہ وہ مستحکم طور پر چیک کرے کہ فنکشن صرف ان زبان کی خصوصیات کا استعمال کرتا ہے جو زیادہ تر جی پی یوز کے ذریعہ سپورٹ کی جاتی ہیں، مثال کے طور پر، مائی فنک () پابندی کو کالعدم کریں (ایم پی) {.} مائیکروسافٹ یا کھلی سی + + اے ایم پی تفصیلات کا دوسرا عمل درآمد کرنے والا دوسرے مقاصد کے لیے دیگر پابندی والے وضاحتیں شامل کر سکتا ہے، بشمول ان مقاصد کے لیے جن کا سی + + اے ایم پی سے کوئی تعلق نہیں ہے۔ نئی زبان کی خصوصیت کے علاوہ، باقی سی + + اے ایم پی کنکرنسی نیم اسپیس میں <amp.h> ہیڈر فائل کے ذریعے دستیاب ہے۔ کلیدی سی + + اے ایم پی کلاسیں یہ ہیں: صف (ایکسلریٹر پر ڈیٹا کے لیے کنٹینر)، صف _ ویو (ڈیٹا کے لیے ریپر)، اشاریہ (این-جہتی نقطہ)، حد (این-جہتی سائز)، ایکسلریٹر (کمپیوٹیشنل وسائل، جیسے جی پی یو، جس پر میموری مختص کرنا اور اسے انجام دینا ہے)، اور ایکسلریٹر _ ویو (ایکسلریٹر کا نظارہ)۔ ایک عالمی فنکشن بھی ہے، متوازی _ کے لیے _ ہر ایک، جسے آپ C + + AMP متوازی لوپ لکھنے کے لیے استعمال کرتے ہیں۔ یہ بھی دیکھیں کہ خرونس گروپ سے اوپن سی ایل سی یو ڈی اے جی پی جی پی یو اوپن اے سی سی ایس وائی سی ایل نے سی + + اے ایم پی ولکن رافٹ لیب حوالہ جات سے کچھ تصورات کو بڑھایا ہے۔ مزید پڑھنے کے لیے کیٹ گریگوری، ایڈ ملر۔ سی + + ایم پی: مائیکروسافٹ ویژول سی + + کے ساتھ تیز رفتار بڑے پیمانے پر متوازی-مائیکروسافٹ، 2012-326 صفحات-بیرونی لنکس سی + + اے ایم پی: زبان اور پروگرامنگ ماڈل-ورژن 1: اگست 2012 مقامی کوڈ میں متوازی پروگرامنگ-سی + + اے ایم پی ٹیم بلاگ http://hsafoundation.com/bringing-camp-beyond-windows-via-clang-llvm سی + + اے ایم پی سپورٹ CLANG میں اور LLVM مرتب https://github.com/RadeonOpenCompute/hcc C + + AMP سپورٹ CLANG اور LLVM مرتب C + + لائبریریوں میں