C++ AMP
সি + + অ্যাক্সিলারেটেড ম্যাসিভ প্যারালেলিজম (সি + + এএমপি) একটি নেটিভ প্রোগ্রামিং মডেল যা সি + + প্রোগ্রামিং ভাষা এবং এর রানটাইম লাইব্রেরির উপাদানগুলি ধারণ করে। এটি এমন প্রোগ্রাম লেখার একটি সহজ উপায় প্রদান করে যা ডেটা-সমান্তরাল হার্ডওয়্যারে যেমন গ্রাফিক্স কার্ড (জিপিইউ) সংকলন এবং সম্পাদন করে। ভিজ্যুয়াল স্টুডিও 2022 (সংস্করণ 17) থেকে শুরু করে, সি + + এএমপি-কে অবচিত হিসাবে ঘোষণা করা হয়েছে, যা ভিজ্যুয়াল স্টুডিও 2022-এর বাইরে এর সমর্থনের সমাপ্তির ইঙ্গিত দেয়। সি + + এএমপি হল ডাইরেক্টএক্স 11-এ বাস্তবায়িত একটি গ্রন্থাগার এবং সি + +-এ সরাসরি ডেটা সমান্তরালতা বাস্তবায়নের জন্য মাইক্রোসফ্টের একটি উন্মুক্ত নির্দিষ্টকরণ। এটি প্রোগ্রামিং জিপিইউগুলিকে বিকাশকারীর জন্য সহজ করে তোলার উদ্দেশ্যে তৈরি করা হয়েছে যার মধ্যে কোনটিই নেই (যে ক্ষেত্রে সিস্টেমটি তার যথাসাধ্য চেষ্টা করে) থেকে আরও সূক্ষ্মভাবে নিয়ন্ত্রণযোগ্য, তবে এখনও বহনযোগ্য। মাইক্রোসফ্টের বাস্তবায়নে, যে কোডটি জিপিইউতে চালানো যাবে না তা পরিবর্তে এক বা একাধিক সিপিইউতে ফিরে আসবে এবং এস. এস. ই নির্দেশাবলী ব্যবহার করবে। মাইক্রোসফ্ট বাস্তবায়নটি ডিবাগার এবং প্রোফাইলার সমর্থন সহ ভিজ্যুয়াল স্টুডিও 2012-এ অন্তর্ভুক্ত করা হয়েছে। মাইক্রোসফ্ট থেকে প্রাথমিক সি + + এএমপি রিলিজের জন্য কমপক্ষে উইন্ডোজ 7 বা উইন্ডোজ সার্ভার 2008 আর 2 প্রয়োজন। যেহেতু সি + + এএমপি একটি উন্মুক্ত নির্দিষ্টকরণ, তাই আশা করা হচ্ছে যে সময়মতো মাইক্রোসফ্টের বাইরে বাস্তবায়নগুলি উপস্থিত হবে; এর একটি প্রাথমিক উদাহরণ হল শেভলিন পার্ক, ইন্টেলের ক্ল্যাং/এলএলভিএম এবং ওপেনসিএল-এ সি + + এএমপি-র পরীক্ষামূলক বাস্তবায়ন। 2013 সালের 12ই নভেম্বর এইচএসএ ফাউন্ডেশন একটি সি + + এএমপি সংকলক ঘোষণা করে যা বর্তমান সি + + এএমপি নির্দিষ্টকরণকে সমর্থন করে ওপেনসিএল, স্ট্যান্ডার্ড পোর্টেবল ইন্টারমিডিয়েট রিপ্রেজেন্টেশন (এসপিআইআর) এবং এইচএসএ ইন্টারমিডিয়েট ল্যাঙ্গুয়েজ (এইচএসএআইএল)-এ আউটপুট দেয়। উৎসটি https://github.com/RadeonOpenCompute/hcc-এ পাওয়া যায়। সি + + এএমপি সমর্থন অপ্রচলিত বলে মনে করা হয় এবং বর্তমান আরওসিএম 1.9 সিরিজ এটি সমর্থন করার জন্য শেষ হবে। সি + + এএমপি-র পিছনের মৌলিক ধারণাগুলি, যেমন সমান্তরাল এবং বৈচিত্র্যময় প্রোগ্রামিং বৈশিষ্ট্যগুলি প্রকাশ করতে সি + + ক্লাসগুলি ব্যবহার করা, এসওয়াইসিএল মানের জন্য অনুপ্রেরণামূলক। বৈশিষ্ট্যগুলি মাইক্রোসফ্ট সীমাবদ্ধতা (এএমপি) বৈশিষ্ট্য যুক্ত করেছে, যা যে কোনও ফাংশনে (ল্যাম্বডাস সহ) প্রয়োগ করা যেতে পারে ঘোষণা করার জন্য যে ফাংশনটি একটি সি + + এএমপি অ্যাক্সিলারেটরে কার্যকর করা যেতে পারে। সংকলক স্বয়ংক্রিয়ভাবে একটি গণনা কার্নেল তৈরি করবে, পরিচালনার বয়লারপ্লেট সংরক্ষণ করবে এবং একটি পৃথক ভাষা ব্যবহার করতে হবে। সীমাবদ্ধ কীওয়ার্ড কম্পাইলারকে স্থিরভাবে পরীক্ষা করার নির্দেশ দেয় যে ফাংশনটি শুধুমাত্র সেই ভাষার বৈশিষ্ট্যগুলি ব্যবহার করে যা বেশিরভাগ জিপিইউ দ্বারা সমর্থিত, উদাহরণস্বরূপ, অকার্যকর মাইফান্ক () সীমাবদ্ধ (এএমপি) {.} মাইক্রোসফ্ট বা খোলা সি + + এএমপি নির্দিষ্টকরণের অন্যান্য প্রয়োগকারী অন্যান্য উদ্দেশ্যে অন্যান্য সীমাবদ্ধ নির্দিষ্টকারী যুক্ত করতে পারে, যার মধ্যে সি + + এএমপি-র সাথে সম্পর্কিত নয়। নতুন ভাষা বৈশিষ্ট্যের বাইরে, বাকি সি + + এএমপি কনকারেন্সি নেমস্পেসে <amp.h> হেডার ফাইলের মাধ্যমে পাওয়া যায়। মূল সি + + এএমপি শ্রেণীগুলি হলঃ অ্যারে (একটি অ্যাক্সিলারেটরের তথ্যের জন্য ধারক), অ্যারে _ ভিউ (তথ্যের জন্য মোড়ক), সূচক (এন-মাত্রিক বিন্দু), ব্যাপ্তি (এন-মাত্রিক আকার), অ্যাক্সিলারেটর (গণনামূলক সম্পদ, যেমন একটি জিপিইউ, যার উপর মেমরি বরাদ্দ করা এবং কার্যকর করা যায়), এবং অ্যাক্সিলারেটর _ ভিউ (একটি অ্যাক্সিলারেটরের দৃশ্য)। একটি বৈশ্বিক ফাংশনও রয়েছে, সমান্তরাল _ প্রতিটি, যা আপনি একটি সি + + এএমপি সমান্তরাল লুপ লিখতে ব্যবহার করেন। আরও দেখুন ক্রোনোস গ্রুপের ওপেনসিএল সিইউডিএ জিপিজিপিইউ ওপেনএসিসি এসওয়াইসিএল সি + + এএমপি ভালকান রাফ্টলিব রেফারেন্স থেকে কিছু ধারণা প্রসারিত করেছে আরও পড়ুন কেট গ্রেগরি, অ্যাডে মিলার। সি + + অ্যাম্পঃ মাইক্রোসফ্ট ভিজ্যুয়াল সি + +-এর সাথে ত্বরান্বিত বিশাল সমান্তরালতা-মাইক্রোসফ্ট, 2012-326 পৃষ্ঠা-বাহ্যিক লিঙ্ক সি + + এএমপিঃ ভাষা এবং প্রোগ্রামিং মডেল-সংস্করণ 1 আগস্ট 2012 নেটিভ কোডে সমান্তরাল প্রোগ্রামিং-সি + + এএমপি টিম ব্লগ http://hsafoundation.com/bringing-camp-beyond-windows-via-clang-llvm সি + + এএমপি ক্ল্যাং এবং এলএলভিএম সংকলক https://github.com/RadeonOpenCompute/hcc সি + + এএমপি ক্ল্যাং এবং এলএলভিএম সংকলক সি + + লাইব্রেরিতে সমর্থন জিপিজিপিইউ লাইব্রেরি সমান্তরাল কম্পিউটিং