HPVM 2.0، CPU، GPU، FPGA ۽ هارڊويئر تيز ڪندڙ لاءِ مرتب ڪندڙ شايع ٿيل

LLVM پروجيڪٽ HPVM 2.0 (Heterogeneous Parallel Virtual Machine) جاري ڪرڻ جو اعلان ڪيو، هڪ ڪمپائلر جنهن جو مقصد هيٽروجنيئس سسٽم لاءِ پروگرامنگ کي آسان ڪرڻ ۽ CPUs، GPUs، FPGAs، ۽ ڊومين جي مخصوص هارڊويئر تيز ڪندڙ لاءِ ڪوڊ جنريشن ٽولز مهيا ڪرڻ آهي. پروجيڪٽ ڪوڊ Apache 2.0 لائسنس تحت ورهايو ويو آهي.

متوازي متوازي سسٽم لاءِ پروگرامنگ هڪ ئي سسٽم ۾ اجزاء جي موجودگي جي ڪري پيچيده آهي جيڪي متوازي حاصل ڪرڻ لاءِ مختلف ماڊل استعمال ڪن ٿا (سي پي يو ڪور، ویکٹر هدايتون، GPU، وغيره)، مختلف هدايتون سيٽ ۽ مختلف ياداشت واري درجي بندي. هر سسٽم انهن اجزاء جو پنهنجو ميلاپ استعمال ڪري ٿو. HPVM پروجيڪٽ جو بنيادي خيال اهو آهي ته گڏ ڪرڻ دوران متوازي عمل ڪيل پروگرامن جي گڏيل نمائندگي کي استعمال ڪيو وڃي، جيڪو مختلف قسم جي هارڊويئر لاءِ استعمال ڪري سگهجي ٿو جيڪو متوازي ڪمپيوٽنگ کي سپورٽ ڪري ٿو، بشمول GPUs، ویکٹر هدايتون، ملٽي ڪور پروسيسرز، FPGAs ۽ مختلف خاص تيز رفتار چپس.

ٻين سسٽم جي برعڪس، HPVM هيٽروجنيئس ڪمپيوٽنگ کي منظم ڪرڻ لاءِ ٽن صلاحيتن کي گڏ ڪرڻ جي ڪوشش ڪئي - هڪ پروگرامنگ ٻولي ۽ هارڊويئر-آزاد وچولي نمائندگي (IR)، ورچوئل انسٽرڪشن سيٽ آرڪيٽيڪچر (V-ISA) ۽ رن ٽائم شيڊيولنگ:

  • HPVM وچولي نمائندگي هدايتن جي LLVM وچولي نمائندگي کي وڌائيندو آھي ھڪڙي درجي واري ڊيٽا جي وهڪري جي گراف کي استعمال ڪندي ڪم، ڊيٽا، ۽ پائپ لائن جي سطح تي متوازي کي پڪڙڻ لاء. HPVM وچولي نمائندگي پڻ شامل آهي ویکٹر هدايتون ۽ حصيداري ياداشت. وچولي نمائندگي کي استعمال ڪرڻ جو بنيادي مقصد موثر ڪوڊ نسل ۽ مختلف نظامن لاءِ اصلاح آهي.
  • ورچوئل انسٽرڪشن سيٽ آرڪيٽيڪچر (V-ISA) گھٽ-سطح جي هارڊويئر خاصيتن کي خلاصي ڪري ٿو ۽ صرف هڪ بنيادي متوازي نموني استعمال ڪندي متوازي ۽ ميموري آرڪيٽيڪچر جي مختلف شڪلن کي متحد ڪري ٿو - ڊيٽا فلو گراف. V-ISA توهان کي متوازي ڪمپيوٽنگ لاءِ مختلف قسم جي سامان جي وچ ۾ پورٽبلٽي حاصل ڪرڻ جي اجازت ڏئي ٿي ۽ اهو ممڪن بڻائي ٿو ته ڪارڪردگي کي وڃائڻ نه جڏهن مختلف عناصرن جي مختلف عناصر کي استعمال ڪندي. ورچوئل ISA پڻ استعمال ڪري سگھجي ٿو يونيورسل ايگزيڪيوٽو پروگرام ڪوڊ پهچائڻ لاءِ جيڪو هلائي سگھي ٿو CPUs، GPUs، FPGAs، ۽ مختلف تيز ڪندڙ.
  • ڪمپيوٽنگ جي عمل لاءِ لچڪدار شيڊيولنگ ​​پاليسيون رن ٽائم تي لاڳو ڪيون وينديون آهن ۽ ٻنهي تي عمل ڪيو ويندو آهي پروگرام بابت معلومات جي بنياد تي (گراف ڍانچي) ۽ سسٽم ۾ موجود ڪنهن به ٽارگيٽ ڪمپيوٽنگ ڊوائيس تي عمل ڪرڻ لاءِ انفرادي پروگرام نوڊس جي تاليف ذريعي.

پروجيڪٽ پاران تيار ڪيل ڪوڊ جنريٽر NVIDIA GPUs (cuDNN ۽ OpenCL)، Intel AVX ویکٹر هدايتون، FPGAs ۽ multi-core x86 CPUs استعمال ڪرڻ لاءِ ورچوئل ISA استعمال ڪندي بيان ڪيل ايپليڪيشن نوڊس جو ترجمو ڪرڻ جي قابل آهن. اهو نوٽ ڪيو ويو آهي ته HPVM مترجمن جي ڪارڪردگي GPUs ۽ ویکٹر ڪمپيوٽنگ ڊوائيسز لاء هٿ سان لکيل OpenCL ڪوڊ جي مقابلي ۾ آهي.

HPVM 2.0 جي اهم جدت:

  • هڪ Hetero-C++ ٻولي فرنٽ اينڊ پيش ڪيو ويو آهي، جيڪو HPVM ۾ تاليف لاءِ C/C++ ۾ ايپليڪيشن ڪوڊ جي متوازي ڪرڻ کي آسان بڻائي ٿو. Hetero-C++ ڊيٽا-سطح جي متوازي ۽ عمدي ڪمن لاءِ توسيع بيان ڪري ٿو جيڪي HPVM ٿريڊ گرافس کي نقشي ۾ آڻين ٿا.
  • Intel FPGAs تي ڪوڊ جي عملدرآمد لاءِ سپورٽ مهيا ڪرڻ لاءِ هڪ FPGA پس منظر شامل ڪيو ويو آهي. عمل کي منظم ڪرڻ لاء، OpenCL لاء Intel FPGA SDK استعمال ڪيو ويندو آهي.
  • ڊي ايس اي (ڊزائن اسپيس ايڪسپلوريشن) فريم ورڪ شامل ڪيو ويو آهي، جنهن ۾ شامل ڪيل هارڊويئر پليٽ فارم لاءِ پاڻمرادو ٽيوننگ ايپليڪيشنن لاءِ رڪاوٽن جي نشاندهي ڪرڻ لاءِ ڪمپيلر اصلاح ۽ ميڪانيزم شامل آهن. فريم ورڪ ۾ Intel کان FPGAs لاءِ تيار ڪيل ڪارڪردگي ماڊل شامل آهي ۽ HPVM پاران سپورٽ ڪيل ڪنهن به ڊوائيس لاءِ اصلاح لاءِ توهان جي پنهنجي پروسيسرز کي ڳنڍڻ ممڪن بڻائي ٿو. اصلاحن کي HPVM ۽ LLVM ڊيٽا فلو گراف جي سطح تي لاڳو ڪري سگھجي ٿو.
  • LLVM اجزاء کي ورزن 13.0 ۾ اپڊيٽ ڪيو ويو آھي.
  • ڪوڊ کي ٻيهر منظم ڪيو ويو آهي انهي کي آسان بڻائڻ لاءِ ڪوڊ بيس، لائبريريون ۽ يوٽيلٽيز.
  • ٽيسٽنگ انفراسٽرڪچر کي بهتر ڪيو ويو آهي، مختلف HPVM اجزاء لاءِ نوان ٽيسٽ شامل ڪيا ويا آهن.

جو ذريعو: opennet.ru

تبصرو شامل ڪريو