কম্পিউটার রিসোর্স ইউ এস.এম. যেখানে চুদা নেতৃত্ব দেয়: জিপিজিপিইউ প্রযুক্তির ব্যবহারিক প্রয়োগ - সেরা সরঞ্জাম অ্যাপ্লিকেশন যা চুদায় চলে
কয়েক দশক ধরে, মুরের আইন কার্যকর হয়েছে, যা বলে যে প্রতি দুই বছরে একটি চিপে ট্রানজিস্টরের সংখ্যা দ্বিগুণ হবে। যাইহোক, এটি 1965 সালে ফিরে এসেছিল এবং গত 5 বছরে ভোক্তা-শ্রেণীর প্রসেসরগুলিতে শারীরিক মাল্টি-কোরের ধারণাটি দ্রুত বিকাশ শুরু করেছে: 2005 সালে, ইন্টেল পেন্টিয়াম ডি প্রবর্তন করেছিল এবং এএমডি অ্যাথলন এক্স 2 প্রবর্তন করেছিল। তখন, 2 কোর ব্যবহার করে অ্যাপ্লিকেশনগুলি এক হাতের আঙুলে গণনা করা যেতে পারে। যাইহোক, ইন্টেল প্রসেসরের পরবর্তী প্রজন্ম, যা একটি বিপ্লব ঘটিয়েছে, ঠিক 2টি শারীরিক কোর ছিল। তদুপরি, কোয়াড সিরিজটি 2007 সালের জানুয়ারিতে উপস্থিত হয়েছিল, সেই সময়ে মুর নিজেই স্বীকার করেছিলেন যে তার আইন শীঘ্রই প্রযোজ্য বন্ধ হয়ে যাবে।
এখন কি? এমনকি বাজেট অফিস সিস্টেমেও ডুয়াল-কোর প্রসেসর এবং 4টি ফিজিক্যাল কোর আদর্শ হয়ে উঠেছে এবং এটি মাত্র 2-3 বছরের মধ্যে। প্রসেসরের ফ্রিকোয়েন্সি বাড়ানো হয় না, তবে আর্কিটেকচার উন্নত হয়, শারীরিক এবং ভার্চুয়াল কোরের সংখ্যা বাড়ানো হয়। যাইহোক, দশ বা এমনকি শত শত কম্পিউটিং "ইউনিট" দিয়ে সজ্জিত ভিডিও অ্যাডাপ্টার ব্যবহার করার ধারণাটি দীর্ঘকাল ধরে চলে আসছে।
এবং যদিও GPU কম্পিউটিং-এর সম্ভাবনা প্রচুর, সবচেয়ে জনপ্রিয় সমাধান হল Nvidia CUDA, যা বিনামূল্যে, প্রচুর ডকুমেন্টেশন রয়েছে এবং সাধারণত প্রয়োগ করা খুব সহজ, এই প্রযুক্তি ব্যবহার করে খুব বেশি অ্যাপ্লিকেশন নেই। মূলত, এগুলি সমস্ত ধরণের বিশেষায়িত গণনা, যা বেশিরভাগ ক্ষেত্রে গড় ব্যবহারকারীর যত্ন নেয় না। তবে ব্যাপক ব্যবহারকারীর জন্য ডিজাইন করা প্রোগ্রামগুলিও রয়েছে এবং আমরা এই নিবন্ধে সেগুলি সম্পর্কে কথা বলব।
প্রথমত, প্রযুক্তি নিজেই এবং এটি কী ব্যবহার করা হয় সে সম্পর্কে একটু। কারণ একটি নিবন্ধ লেখার সময়, আমি পাঠকদের একটি বিস্তৃত পরিসরের উপর ফোকাস করি, তাই আমি এটিকে জটিল শর্তাদি ছাড়া এবং কিছুটা সংক্ষিপ্তভাবে একটি অ্যাক্সেসযোগ্য ভাষায় ব্যাখ্যা করার চেষ্টা করব।
চুদা(ইংরেজি: Compute Uniified Device Architecture) হল একটি সফ্টওয়্যার এবং হার্ডওয়্যার আর্কিটেকচার যা আপনাকে NVIDIA গ্রাফিক্স প্রসেসর ব্যবহার করে গণনা করতে দেয় যা GPGPU প্রযুক্তি সমর্থন করে (ভিডিও কার্ডে র্যান্ডম কম্পিউটিং)। CUDA আর্কিটেকচারটি অষ্টম প্রজন্মের NVIDIA চিপ - G80 প্রকাশের সাথে বাজারে প্রথম উপস্থিত হয়েছিল এবং এটি পরবর্তী সমস্ত সিরিজের গ্রাফিক্স চিপগুলিতে উপস্থিত রয়েছে যা GeForce, Quadro এবং Tesla অ্যাক্সিলারেটর পরিবারগুলিতে ব্যবহৃত হয়৷ (c) Wikipedia.org
ইনকামিং স্ট্রীম একে অপরের থেকে স্বাধীনভাবে প্রক্রিয়া করা হয়, যেমন সমান্তরাল
3টি স্তরে একটি বিভাজন রয়েছে:
গ্রিড- মূল. ব্লকের একটি/দুই/ত্রি-মাত্রিক অ্যারে রয়েছে।
ব্লক- অনেক থ্রেড রয়েছে. বিভিন্ন ব্লকের থ্রেড একে অপরের সাথে যোগাযোগ করতে পারে না। কেন ব্লক চালু করার প্রয়োজন ছিল? প্রতিটি ব্লক মূলত তার নিজস্ব সাবটাস্কের জন্য দায়ী। উদাহরণস্বরূপ, একটি বড় চিত্র (যা একটি ম্যাট্রিক্স) কয়েকটি ছোট অংশে (ম্যাট্রিক্স) ভাগ করা যেতে পারে এবং সমান্তরালভাবে চিত্রের প্রতিটি অংশের সাথে কাজ করা যেতে পারে।
থ্রেড- প্রবাহ। একটি ব্লকের মধ্যে থ্রেডগুলি হয় শেয়ার্ড মেমরির মাধ্যমে ইন্টারঅ্যাক্ট করতে পারে, যা বৈশ্বিক মেমরির চেয়ে অনেক দ্রুত বা থ্রেড সিঙ্ক্রোনাইজেশন টুলের মাধ্যমে।
ওয়ার্পএকে অপরের সাথে ইন্টারঅ্যাক্ট করে এমন থ্রেডগুলির একটি ইউনিয়ন, সমস্ত আধুনিক GPU-এর জন্য ওয়ার্পের আকার 32। পরবর্তী আসে হাফ ওয়ার্প, যা ওয়ার্পের অর্ধেক, কারণ মেমরি অ্যাক্সেস সাধারণত ওয়ার্পের প্রথম এবং দ্বিতীয়ার্ধের জন্য আলাদাভাবে ঘটে।
আপনি দেখতে পাচ্ছেন, এই স্থাপত্যটি সমান্তরাল কাজগুলির জন্য দুর্দান্ত। এবং যদিও সি ল্যাঙ্গুয়েজে কিছু বিধিনিষেধ সহ প্রোগ্রামিং করা হয়, বাস্তবে সবকিছু এত সহজ নয়, কারণ... সবকিছু সমান্তরাল করা যাবে না। এলোমেলো সংখ্যা (বা প্রাথমিককরণ) তৈরি করার জন্য কোনও মানক ফাংশন নেই; এই সমস্ত আলাদাভাবে প্রয়োগ করতে হবে। এবং যদিও প্রচুর রেডিমেড বিকল্প রয়েছে, তবে এর কোনটিই আনন্দ নিয়ে আসে না। পুনরাবৃত্তি ব্যবহার করার ক্ষমতা তুলনামূলকভাবে সম্প্রতি উপস্থিত হয়েছে।
স্পষ্টতার জন্য, একটি ছোট কনসোল প্রোগ্রাম (কোড ছোট করার জন্য) লেখা হয়েছিল যা ফ্লোট টাইপের দুটি অ্যারে দিয়ে অপারেশন করে, যেমন অ-পূর্ণসংখ্যা মান সহ। উপরে উল্লিখিত কারণে, সিপিইউ দ্বারা প্রাথমিককরণ (বিভিন্ন নির্বিচারে মান দিয়ে অ্যারে পূরণ করা) করা হয়েছিল। এর পরে, প্রতিটি অ্যারের সংশ্লিষ্ট উপাদানগুলির সাথে 25টি ভিন্ন অপারেশন সঞ্চালিত হয়েছিল, মধ্যবর্তী ফলাফলগুলি তৃতীয় অ্যারেতে লেখা হয়েছিল। অ্যারের আকার পরিবর্তিত হয়েছে, ফলাফলগুলি নিম্নরূপ:
মোট 4 টি পরীক্ষা করা হয়েছিল:
প্রতিটি অ্যারের মধ্যে 1024 উপাদান:
এটা স্পষ্টভাবে দেখা যায় যে এত অল্প সংখ্যক উপাদানের সাথে, সমান্তরাল কম্পিউটিং খুব কমই কাজে লাগে, কারণ হিসাব নিজেদের প্রস্তুতির চেয়ে অনেক দ্রুত।
প্রতিটি অ্যারের মধ্যে 4096 উপাদান:
এবং এখন আপনি দেখতে পাচ্ছেন যে ভিডিও কার্ড প্রসেসরের চেয়ে 3 গুণ দ্রুত অ্যারেতে অপারেশন করে। তদুপরি, ভিডিও কার্ডে এই পরীক্ষার কার্যকর করার সময় বাড়েনি (সময়ের সামান্য হ্রাস একটি ত্রুটির জন্য দায়ী করা যেতে পারে)।
প্রতিটি অ্যারেতে এখন 12288টি উপাদান রয়েছে:
ভিডিও কার্ডের বিচ্ছেদ 2 গুণ বেড়েছে। আবার, এটা লক্ষনীয় যে ভিডিও কার্ডে মৃত্যুদন্ড কার্যকর করার সময় বেড়েছে
নগণ্যভাবে, কিন্তু প্রসেসরে 3 বারের বেশি, অর্থাৎ কাজের জটিলতার সমানুপাতিক।
এবং শেষ পরীক্ষা হল প্রতিটি অ্যারের 36864 উপাদান:
এই ক্ষেত্রে, ত্বরণ চিত্তাকর্ষক মানগুলিতে পৌঁছেছে - একটি ভিডিও কার্ডে প্রায় 22 গুণ দ্রুত। এবং আবার, ভিডিও কার্ডে কার্যকর করার সময় কিছুটা বেড়েছে, তবে প্রসেসরে - প্রয়োজনীয় 3 বার, যা আবার টাস্কের জটিলতার সমানুপাতিক।
আপনি যদি গণনাকে জটিল করতে থাকেন তবে ভিডিও কার্ডটি আরও বেশি করে জিতবে। উদাহরণটি কিছুটা অতিরঞ্জিত হলেও, সামগ্রিক পরিস্থিতি স্পষ্টভাবে দেখায়। কিন্তু উপরে উল্লিখিত হিসাবে, সবকিছু সমান্তরাল করা যাবে না। উদাহরণস্বরূপ, পাই গণনা করা। মন্টে কার্লো পদ্ধতি ব্যবহার করে লেখা শুধুমাত্র উদাহরণ আছে, কিন্তু গণনার নির্ভুলতা হল 7 দশমিক স্থান, অর্থাৎ নিয়মিত ভাসা। গণনার নির্ভুলতা বাড়ানোর জন্য, দীর্ঘ পাটিগণিত প্রয়োজন, এবং এখানেই সমস্যা দেখা দেয়, কারণ এটি কার্যকরভাবে বাস্তবায়ন করা খুব, খুব কঠিন। আমি ইন্টারনেটে এমন উদাহরণ খুঁজে পাইনি যা CUDA ব্যবহার করে এবং Pi থেকে 1 মিলিয়ন দশমিক স্থান গণনা করে। এই ধরনের একটি অ্যাপ্লিকেশন লেখার চেষ্টা করা হয়েছে, কিন্তু পাই গণনা করার জন্য সবচেয়ে সহজ এবং সবচেয়ে কার্যকর পদ্ধতি হল ব্রেন্ট-সালামিন অ্যালগরিদম বা গাউস সূত্র। সুপরিচিত সুপারপিআই সম্ভবত (অপারেশনের গতি এবং পুনরাবৃত্তির সংখ্যা দ্বারা বিচার করে) গাউসিয়ান সূত্র ব্যবহার করে। এবং, দ্বারা বিচার
সুপারপিআই একক-থ্রেডেড হওয়ার কারণে, CUDA-এর অধীনে উদাহরণের অভাব এবং আমার প্রচেষ্টার ব্যর্থতার কারণে, পাই গণনাকে কার্যকরভাবে সমান্তরাল করা অসম্ভব।
যাইহোক, আপনি লক্ষ্য করতে পারেন কিভাবে গণনার সময় GPU-তে লোড বৃদ্ধি পায় এবং মেমরিও বরাদ্দ করা হয়।
এখন চলুন CUDA-এর আরও ব্যবহারিক সুবিধার দিকে যাওয়া যাক, যেমন বর্তমানে বিদ্যমান প্রোগ্রামগুলি যা এই প্রযুক্তি ব্যবহার করে৷ বেশিরভাগ অংশে, এগুলি সব ধরনের অডিও/ভিডিও রূপান্তরকারী এবং সম্পাদক।
3টি ভিন্ন ভিডিও ফাইল পরীক্ষায় ব্যবহার করা হয়েছিল:
- *অবতার চলচ্চিত্র নির্মাণের ইতিহাস - 1920x1080, MPEG4, h.264।
- * সিরিজ "মি টু মি" - 1280x720, MPEG4, h.264।
- *সিরিজ "ফিলাডেলফিয়ায় সবসময় রোদ থাকে" - 624x464, xvid।
প্রথম দুটি ফাইলের ধারক এবং আকার ছিল .mkv এবং 1.55 GB, এবং শেষটি ছিল .avi এবং 272 MB৷
চলুন শুরু করা যাক খুব চাঞ্চল্যকর এবং জনপ্রিয় পণ্য দিয়ে- বাদাবুম. ব্যবহৃত সংস্করণ - 1.2.1.74 . অনুষ্ঠানের খরচ হয় $29.90 .
প্রোগ্রাম ইন্টারফেসটি সহজ এবং স্বজ্ঞাত - বাম দিকে আমরা সোর্স ফাইল বা ডিস্ক নির্বাচন করি এবং ডানদিকে - প্রয়োজনীয় ডিভাইস যার জন্য আমরা এনকোড করব। এছাড়াও একটি ব্যবহারকারী মোড রয়েছে যেখানে প্যারামিটারগুলি ম্যানুয়ালি সেট করা হয়, যা আমরা ব্যবহার করেছি।
প্রথমে, আসুন দেখি কত দ্রুত এবং দক্ষতার সাথে ভিডিওটি "নিজের মধ্যে" এনকোড করা হয়েছে, অর্থাৎ একই রেজোলিউশন এবং প্রায় একই আকার। আমরা গতিকে fps-এ পরিমাপ করব, অতিবাহিত সময়ের মধ্যে নয় - এইভাবে তুলনা করা এবং গণনা করা আরও সুবিধাজনক যে নির্বিচারে দৈর্ঘ্যের একটি ভিডিও কতটা সংকুচিত হবে। কারণ আজ আমরা "সবুজ" প্রযুক্তি বিবেচনা করছি, তারপর গ্রাফগুলি সংশ্লিষ্ট হবে -)
এনকোডিং গতি সরাসরি মানের উপর নির্ভর করে, এটি সুস্পষ্ট। এটি লক্ষণীয় যে হালকা রেজোলিউশন (আসুন এটিকে ঐতিহ্যগতভাবে SD বলি) Badaboom-এর জন্য কোনও সমস্যা নয় - এনকোডিং গতি মূল (24 fps) ভিডিও ফ্রেমরেটের চেয়ে 5.5 গুণ বেশি। এবং এমনকি ভারী 1080p ভিডিও রিয়েল টাইমে প্রোগ্রাম দ্বারা রূপান্তরিত হয়। এটা লক্ষনীয় যে চূড়ান্ত ভিডিওর গুণমান মূল ভিডিও উপাদানের খুব কাছাকাছি, যেমন বাদাবুম খুব, খুব দক্ষতার সাথে এনকোড করে।
কিন্তু সাধারণত তারা কম রেজোলিউশনে ভিডিও স্থানান্তর করে, আসুন দেখি এই মোডে জিনিসগুলি কেমন। রেজোলিউশন কমে যাওয়ার সাথে সাথে ভিডিও বিটরেটও কমেছে। এটি ছিল 1080p আউটপুট ফাইলের জন্য 9500 kbps, 720p এর জন্য 4100 kbps এবং 720x404 এর জন্য 2400 kbps। পছন্দটি একটি যুক্তিসঙ্গত আকার/গুণমানের অনুপাতের উপর ভিত্তি করে করা হয়েছিল।
কোন মন্তব্য প্রয়োজন. আপনি যদি 720p থেকে নিয়মিত SD গুণমানে একটি রিপ তৈরি করেন, তাহলে 2 ঘন্টা স্থায়ী একটি ফিল্ম ট্রান্সকোড করতে প্রায় 30 মিনিট সময় লাগবে। এবং একই সময়ে, প্রসেসর লোড নগণ্য হবে, আপনি অস্বস্তি বোধ না করে আপনার ব্যবসা সম্পর্কে যেতে পারেন।
যদি আপনি ভিডিওটিকে একটি মোবাইল ডিভাইসের জন্য একটি বিন্যাসে রূপান্তর করেন? এটি করার জন্য, iPhone প্রোফাইল নির্বাচন করুন (বিটরেট 1 Mbit/s, 480x320) এবং এনকোডিং গতি দেখুন:
আমার কি কিছু বলার দরকার আছে? সাধারণ আইফোন মানের একটি দুই ঘণ্টার মুভি 15 মিনিটেরও কম সময়ে ট্রান্সকোড করা হয়। এইচডি মানের সাথে এটি আরও কঠিন, তবে এখনও খুব দ্রুত। মূল জিনিসটি হল যে ফোনের ডিসপ্লেতে দেখা হলে আউটপুট ভিডিওর গুণমান মোটামুটি উচ্চ স্তরে থাকে।
সাধারণভাবে, Badaboom থেকে ইমপ্রেশন ইতিবাচক, অপারেশন গতি আনন্দদায়ক, এবং ইন্টারফেস সহজ এবং পরিষ্কার. আগের সংস্করণে সব ধরণের বাগ (আমি 2008 সালে বিটা ব্যবহার করেছি) ঠিক করা হয়েছে। একটি জিনিস বাদে - সোর্স ফাইলের পাথ, সেইসাথে যে ফোল্ডারে সমাপ্ত ভিডিওটি সংরক্ষণ করা হয়েছে তাতে রাশিয়ান অক্ষর থাকা উচিত নয়। কিন্তু প্রোগ্রামের সুবিধার তুলনায়, এই অপূর্ণতা নগণ্য।
পরবর্তী লাইনে আমাদের থাকবে সুপার LoiLoScope. নিয়মিত সংস্করণের জন্য তারা জিজ্ঞাসা 3,280 রুবেল, এবং টাচ সংস্করণের জন্য, যা উইন্ডোজ 7-এ টাচ কন্ট্রোল সমর্থন করে, তারা যতটুকু চায় 4,440 রুবেল. ডেভেলপার কেন এই ধরনের অর্থ চায় এবং কেন ভিডিও এডিটরের মাল্টিটাচ সমর্থন প্রয়োজন তা বের করার চেষ্টা করা যাক। সর্বশেষ সংস্করণ ব্যবহৃত - 1.8.3.3 .
প্রোগ্রাম ইন্টারফেসটি শব্দে বর্ণনা করা বেশ কঠিন, তাই আমি একটি ছোট ভিডিও তৈরি করার সিদ্ধান্ত নিয়েছি। আমি এখনই বলব যে, CUDA-এর সমস্ত ভিডিও কনভার্টারগুলির মতো, GPU ত্বরণ শুধুমাত্র h.264 কোডেক সহ MPEG4-তে ভিডিও আউটপুটের জন্য সমর্থিত।
এনকোডিংয়ের সময়, প্রসেসরের লোড 100%, তবে এটি অস্বস্তি সৃষ্টি করে না। ব্রাউজার এবং অন্যান্য হালকা অ্যাপ্লিকেশন ধীর হয় না.
এখন পারফরম্যান্সে যাওয়া যাক। শুরুতে, সবকিছুই Badaboom-এর মতোই - ভিডিওটিকে মানের দিক থেকে অনুরূপ ট্রান্সকোড করা।
বাদাবুমের তুলনায় ফলাফল অনেক ভালো। গুণমানটিও দুর্দান্ত, মূলের সাথে পার্থক্যটি শুধুমাত্র একটি ম্যাগনিফাইং গ্লাসের নীচে জোড়ায় ফ্রেমের তুলনা করে লক্ষ্য করা যায়।
বাহ, এখানে LoiloScope ব্যাডাবুমকে 2.5 গুণ ছাড়িয়ে গেছে। একই সময়ে, আপনি সহজেই সমান্তরালভাবে আরেকটি ভিডিও কাটতে এবং এনকোড করতে পারেন, সংবাদ পড়তে পারেন এবং এমনকি সিনেমা দেখতে পারেন, এমনকি প্রসেসরের লোড সর্বাধিক হওয়া সত্ত্বেও ফুলএইচডি সমস্যা ছাড়াই চালানো হয়।
এখন আসুন একটি মোবাইল ডিভাইসের জন্য একটি ভিডিও তৈরি করার চেষ্টা করি, আসুন প্রোফাইলটিকে সেইভাবে কল করি যেভাবে এটিকে Badaboom - iPhone (480x320, 1 Mbit/s):
কোন ত্রুটি নেই। সবকিছু বেশ কয়েকবার পুনঃচেক করা হয়েছিল, প্রতিবার ফলাফল একই ছিল। সম্ভবত, এটি একটি সাধারণ কারণে ঘটে যে SD ফাইলটি একটি ভিন্ন কোডেক এবং একটি ভিন্ন পাত্রে রেকর্ড করা হয়েছিল। ট্রান্সকোডিং করার সময়, ভিডিওটি প্রথমে ডিকোড করা হয়, একটি নির্দিষ্ট আকারের ম্যাট্রিসে বিভক্ত এবং সংকুচিত হয়। xvid-এর ক্ষেত্রে ব্যবহৃত ASP ডিকোডার সমান্তরালভাবে ডিকোড করার সময় AVC (h.264-এর জন্য) থেকে ধীর। যাইহোক, 192 fps মূল ভিডিওর গতির চেয়ে 8 গুণ দ্রুত; একটি 23-মিনিটের সিরিজ 4 মিনিটেরও কম সময়ে সংকুচিত হয়। xvid/DivX-এ সংকুচিত অন্যান্য ফাইলের সাথে পরিস্থিতির পুনরাবৃত্তি হয়েছিল।
লোইলোস্কোপআমি শুধুমাত্র মনোরম ছাপ রেখেছি - ইন্টারফেস, তার অস্বাভাবিকতা সত্ত্বেও, সুবিধাজনক এবং কার্যকরী, এবং অপারেশন গতি প্রশংসার বাইরে। তুলনামূলকভাবে দুর্বল কার্যকারিতা কিছুটা হতাশাজনক, তবে প্রায়শই সাধারণ ইনস্টলেশনের সাথে আপনাকে কেবল রঙগুলিকে সামান্য সামঞ্জস্য করতে হবে, মসৃণ রূপান্তর করতে হবে, পাঠ্য যুক্ত করতে হবে এবং লোইলোস্কোপ এটির সাথে একটি দুর্দান্ত কাজ করে। দামটিও কিছুটা ভীতিজনক - নিয়মিত সংস্করণের জন্য $100 এর বেশি বিদেশী দেশগুলির জন্য স্বাভাবিক, তবে এই জাতীয় পরিসংখ্যান এখনও আমাদের কাছে কিছুটা বন্য বলে মনে হচ্ছে। যদিও, আমি স্বীকার করি যে যদি আমি, উদাহরণস্বরূপ, প্রায়শই বাড়ির ভিডিও চিত্রায়িত এবং সম্পাদনা করি, আমি হয়তো এটি কেনার কথা ভাবতাম। একই সময়ে, যাইহোক, আমি অন্য ফর্ম্যাটে রূপান্তর না করে সরাসরি একটি ভিডিও ক্যামেরা থেকে HD (বা বরং AVCHD) বিষয়বস্তু সম্পাদনা করার সম্ভাবনা পরীক্ষা করেছি; LoiloScope .mts এর মতো ফাইলগুলির সাথে কোনও সমস্যা প্রকাশ করেনি৷
নতুন প্রযুক্তি একটি নতুন উদীয়মান বিবর্তনীয় প্রজাতির মতো। একটি অদ্ভুত প্রাণী, অনেক পুরানো-টাইমারদের থেকে ভিন্ন। কখনও বিশ্রী, কখনও হাস্যকর। এবং প্রথমে তার নতুন গুণাবলী এই স্থায়ী এবং স্থিতিশীল বিশ্বের জন্য উপযুক্ত বলে মনে হয় না।
যাইহোক, একটু সময় চলে যায়, এবং দেখা যাচ্ছে যে শিক্ষানবিস দ্রুত দৌড়ায়, উচ্চতর লাফ দেয় এবং সাধারণত শক্তিশালী হয়। এবং সে তার বিপরীতমুখী প্রতিবেশীদের চেয়ে বেশি মাছি খায়। এবং তারপরে এই একই প্রতিবেশীরা বুঝতে শুরু করে যে এই আনাড়ি প্রাক্তনের সাথে ঝগড়া করার কোনও মানে নেই। তার সাথে বন্ধুত্ব করা ভাল, এবং একটি সিম্বিওসিস সংগঠিত করা আরও ভাল। দেখবেন আরও মাছি থাকবে।
জিপিজিপিইউ প্রযুক্তি (সাধারণ-উদ্দেশ্য গ্রাফিক্স প্রসেসিং ইউনিট - সাধারণ-উদ্দেশ্য গ্রাফিক্স প্রসেসর) দীর্ঘকাল ধরে শুধুমাত্র বুদ্ধিমান শিক্ষাবিদদের তাত্ত্বিক গণনার মধ্যে বিদ্যমান ছিল। কিভাবে অন্য? একটি ভিডিও কার্ডে এর সমান্তরাল শাখাগুলির গণনা অর্পণ করে কয়েক দশক ধরে বিকশিত কম্পিউটিং প্রক্রিয়াটিকে আমূল পরিবর্তন করার প্রস্তাব করা - শুধুমাত্র তাত্ত্বিকরাই এটি করতে সক্ষম।
CUDA প্রযুক্তির লোগো আমাদের মনে করিয়ে দেয় যে এটি এর গভীরতায় বেড়েছে
3D গ্রাফিক্স।
কিন্তু জিপিজিপিইউ প্রযুক্তি বিশ্ববিদ্যালয়ের জার্নালের পাতায় বেশিদিন ধুলো জড়ো করতে পারেনি। তার সেরা গুণাবলীর পালক ফ্লাফ করে, তিনি নির্মাতাদের দৃষ্টি আকর্ষণ করেছিলেন। এভাবেই CUDA-এর জন্ম হয়েছিল - nVidia দ্বারা নির্মিত GeForce গ্রাফিক্স প্রসেসরগুলিতে GPGPU-এর একটি বাস্তবায়ন।
CUDA-কে ধন্যবাদ, GPGPU প্রযুক্তি মূলধারায় পরিণত হয়েছে। এবং এখন শুধুমাত্র সবচেয়ে অদূরদর্শী এবং প্রোগ্রামিং সিস্টেমের অলসতা একটি পুরু স্তর দিয়ে আবৃত ডেভেলপার তাদের পণ্যের সাথে CUDA সমর্থন ঘোষণা করে না। আইটি প্রকাশনাগুলি অসংখ্য জনপ্রিয় বিজ্ঞান নিবন্ধগুলিতে প্রযুক্তির বিশদ বিবরণ উপস্থাপন করাকে সম্মান বলে মনে করে এবং প্রতিযোগীরা অবিলম্বে অনুরূপ কিছু বিকাশের জন্য নিদর্শন এবং ক্রস-কম্পাইলার নিয়ে বসে।
পাবলিক স্বীকৃতি শুধুমাত্র উচ্চাকাঙ্ক্ষী তারকাদের জন্য নয়, নতুন জন্ম নেওয়া প্রযুক্তির জন্যও একটি স্বপ্ন। এবং CUDA ভাগ্যবান ছিল. তিনি সুপরিচিত, তারা তার সম্পর্কে কথা বলে এবং লেখে।
তারা এমনভাবে লেখে যেন তারা পুরু বৈজ্ঞানিক জার্নালে GPGPU নিয়ে আলোচনা চালিয়ে যায়। তারা পাঠককে "গ্রিড", "সিমডি", "ওয়ার্প", "হোস্ট", "টেক্সচার এবং ধ্রুবক মেমরি" এর মতো একগুচ্ছ শব্দ দিয়ে বোমাবর্ষণ করে। তারা তাকে nVidia GPU-এর অর্গানাইজেশন ডায়াগ্রামে একেবারে শীর্ষে নিমজ্জিত করে, তাকে সমান্তরাল অ্যালগরিদমের ঘুরতে ঘুরতে নিয়ে যায় এবং (সবচেয়ে শক্তিশালী পদক্ষেপ) C ভাষায় দীর্ঘ কোড তালিকা দেখায়। ফলস্বরূপ, দেখা যাচ্ছে যে নিবন্ধটির ইনপুটে আমাদের কাছে CUDA বোঝার জ্বলন্ত আকাঙ্ক্ষা সহ একটি নতুন পাঠক রয়েছে এবং আউটপুটে আমাদের একই পাঠক রয়েছে, তবে ফ্যাক্ট, ডায়াগ্রামের জগাখিচুড়িতে একটি ফোলা মাথা ভরা। , কোড, অ্যালগরিদম এবং শর্তাবলী।
এদিকে, যেকোনো প্রযুক্তির লক্ষ্য আমাদের জীবনকে সহজ করে তোলা। এবং CUDA এই সঙ্গে একটি মহান কাজ করে. তার কাজের ফলাফল শত শত স্কিম এবং অ্যালগরিদমের চেয়ে কোন সন্দেহবাদীকে ভালভাবে বিশ্বাস করবে।
সর্বত্র নয়
CUDA উচ্চ-ক্ষমতা সম্পন্ন সুপার কম্পিউটার দ্বারা সমর্থিত
এনভিডিয়া টেসলা।
এবং তবুও, গড় ব্যবহারকারীর জীবনকে সহজ করার ক্ষেত্রে CUDA-এর কাজের ফলাফল দেখার আগে, এটির সমস্ত সীমাবদ্ধতা বোঝার যোগ্য। ঠিক যেমন একটি জিনি সঙ্গে: যে কোনো ইচ্ছা, কিন্তু এক. CUDA এর অ্যাকিলিস হিলও রয়েছে। তাদের মধ্যে একটি হল প্ল্যাটফর্মের সীমাবদ্ধতা যেখানে এটি কাজ করতে পারে।
CUDA সমর্থন করে এমন NVidia ভিডিও কার্ডের তালিকা CUDA সক্ষম পণ্য নামে একটি বিশেষ তালিকায় উপস্থাপন করা হয়েছে। তালিকাটি বেশ চিত্তাকর্ষক, তবে শ্রেণিবদ্ধ করা সহজ। CUDA সমর্থন অস্বীকার করা হয় না:
nVidia GeForce 8th, 9th, 100th, 200th এবং 400th সিরিজের মডেল যাতে বোর্ডে ন্যূনতম 256 মেগাবাইট ভিডিও মেমরি থাকে৷ সমর্থন ডেস্কটপ এবং মোবাইল উভয় কার্ডেই প্রসারিত।
বেশিরভাগ ডেস্কটপ এবং মোবাইল ভিডিও কার্ড হল nVidia Quadro।
এনভিডিয়া আইওন নেটবুক সিরিজ থেকে সমস্ত সমাধান।
হাই-পারফরম্যান্স এইচপিসি (হাই পারফরম্যান্স কম্পিউটিং) এবং এনভিডিয়া টেসলা সুপার কম্পিউটার সলিউশন ব্যক্তিগত কম্পিউটিং এবং স্কেলেবল ক্লাস্টার সিস্টেমগুলি সংগঠিত করার জন্য উভয়ই ব্যবহৃত হয়।
অতএব, CUDA-ভিত্তিক সফ্টওয়্যার পণ্যগুলি ব্যবহার করার আগে, পছন্দের এই তালিকাটি পরীক্ষা করে নেওয়া উচিত।
ভিডিও কার্ড ছাড়াও, CUDA সমর্থন করার জন্য একটি উপযুক্ত ড্রাইভার প্রয়োজন। এটি সেন্ট্রাল এবং গ্রাফিক্স প্রসেসরের মধ্যে লিঙ্ক, যা GPU-এর মাল্টি-কোর ট্রেজার ট্রভের প্রোগ্রাম কোড এবং ডেটা অ্যাক্সেস করার জন্য এক ধরনের সফ্টওয়্যার ইন্টারফেস হিসাবে কাজ করে। আপনি যাতে ভুল না করেন তা নিশ্চিত করতে, nVidia ড্রাইভারের পৃষ্ঠায় যাওয়ার এবং সর্বশেষ সংস্করণটি পাওয়ার পরামর্শ দেয়।
...কিন্তু প্রক্রিয়া নিজেই
CUDA কিভাবে কাজ করে? পাঠককে নির্দিষ্ট পদের অতল গহ্বরে নিমজ্জিত না করে কীভাবে একটি বিশেষ GPU হার্ডওয়্যার আর্কিটেকচারে সমান্তরাল কম্পিউটিংয়ের জটিল প্রক্রিয়া ব্যাখ্যা করবেন?
কেন্দ্রীয় প্রসেসর কীভাবে গ্রাফিক্স প্রসেসরের সাথে সিম্বিওসিসে প্রোগ্রামটি সম্পাদন করে তা কল্পনা করে আপনি এটি করার চেষ্টা করতে পারেন।
স্থাপত্যগতভাবে, সেন্ট্রাল প্রসেসিং ইউনিট (CPU) এবং এর গ্রাফিক্স কাউন্টারপার্ট (GPU) ভিন্নভাবে ডিজাইন করা হয়েছে। যদি আমরা স্বয়ংচালিত শিল্পের বিশ্বের সাথে একটি সাদৃশ্য আঁকি, তবে সিপিইউ একটি স্টেশন ওয়াগন, যার মধ্যে একটিকে "শস্যাগার" বলা হয়। এটি দেখতে একটি যাত্রীবাহী গাড়ির মতো, কিন্তু একই সময়ে (ডেভেলপারদের দৃষ্টিকোণ থেকে) "এটি একটি সুইস, একটি রিপার এবং পাইপের একটি প্লেয়ার।" একই সময়ে একটি ছোট ট্রাক, বাস এবং হাইপারট্রফিড হ্যাচব্যাকের ভূমিকা পালন করে। সংক্ষেপে স্টেশন ওয়াগন। এটিতে কয়েকটি সিলিন্ডার কোর রয়েছে, তবে তারা প্রায় কোনও কাজ পরিচালনা করে এবং চিত্তাকর্ষক ক্যাশে মেমরি একগুচ্ছ ডেটা সংরক্ষণ করতে সক্ষম।
কিন্তু জিপিইউ একটি স্পোর্টস কার। শুধুমাত্র একটি ফাংশন আছে: যত দ্রুত সম্ভব পাইলটকে ফিনিশ লাইনে পৌঁছে দেওয়া। অতএব, কোন বড় ট্রাঙ্ক মেমরি, কোন অতিরিক্ত আসন. কিন্তু সিপিইউ থেকে শতগুণ বেশি সিলিন্ডার কোর রয়েছে।
CUDA-কে ধন্যবাদ, GPGPU প্রোগ্রাম ডেভেলপারদের প্রোগ্রামিং এর জটিলতাগুলি খুঁজে বের করার দরকার নেই
গ্রাফিক্স ইঞ্জিন যেমন DirectX এবং OpenGL এর জন্য উন্নয়ন
সেন্ট্রাল প্রসেসরের বিপরীতে, যা গ্রাফিক্স সহ যেকোনো কাজ সমাধান করতে সক্ষম, কিন্তু গড় কর্মক্ষমতা সহ, গ্রাফিক্স প্রসেসর একটি টাস্কের উচ্চ-গতির সমাধানে অভিযোজিত হয়: ইনপুটে একগুচ্ছ বহুভুজকে পিক্সেলের গুচ্ছে পরিণত করা। আউটপুট. অধিকন্তু, এই সমস্যাটি জিপিইউতে শত শত তুলনামূলক সহজ কম্পিউটিং কোর ব্যবহার করে সমান্তরালভাবে সমাধান করা যেতে পারে।
তাহলে স্টেশন ওয়াগন এবং একটি স্পোর্টস কার থেকে কী ধরণের ট্যান্ডেম থাকতে পারে? CUDA এইরকম কিছু কাজ করে: প্রোগ্রামটি CPU-তে চলে যতক্ষণ না কোডের একটি বিভাগ থাকে যা সমান্তরালভাবে কার্যকর করা যায়। তারপরে, এটি শান্ত সিপিইউ-এর দুটি (বা এমনকি আট) কোরে ধীরে ধীরে চালানোর পরিবর্তে, এটি শত শত GPU কোরে স্থানান্তরিত হয়। একই সময়ে, এই বিভাগের সঞ্চালনের সময় উল্লেখযোগ্যভাবে হ্রাস পেয়েছে, যার অর্থ পুরো প্রোগ্রামটির সম্পাদনের সময়ও হ্রাস পেয়েছে।
প্রযুক্তিগতভাবে, প্রোগ্রামারের জন্য কিছুই পরিবর্তন হয় না। CUDA প্রোগ্রামের কোড সি ভাষায় লেখা হয়। আরও স্পষ্ট করে বললে, এর বিশেষ উপভাষায় "সি উইথ স্ট্রিম" (সি উইথ স্ট্রিম)। স্ট্যানফোর্ডে বিকশিত, সি ভাষার এই এক্সটেনশনটিকে ব্রুক বলা হয়। যে ইন্টারফেসটি ব্রুক কোড GPU-তে স্থানান্তর করে তা হল একটি ভিডিও কার্ডের ড্রাইভার যা CUDA সমর্থন করে। এটি প্রোগ্রামের এই বিভাগের পুরো প্রক্রিয়াকরণ প্রক্রিয়াটি সংগঠিত করে যাতে প্রোগ্রামারের জন্য GPU একটি CPU কপ্রসেসরের মতো দেখায়। ব্যক্তিগত কম্পিউটিংয়ের প্রথম দিনগুলিতে একটি গণিত সহ-প্রসেসরের ব্যবহারের অনুরূপ। ব্রুকের আবির্ভাবের সাথে, CUDA সমর্থন সহ ভিডিও কার্ড এবং তাদের জন্য ড্রাইভার, যেকোনো প্রোগ্রামার তাদের প্রোগ্রামগুলিতে GPU অ্যাক্সেস করতে সক্ষম হয়েছে। কিন্তু এই শামানবাদের আগে নির্বাচিত ব্যক্তিদের একটি সংকীর্ণ বৃত্তের মালিকানা ছিল যারা ডাইরেক্টএক্স বা ওপেনজিএল গ্রাফিক্স ইঞ্জিনগুলির জন্য প্রোগ্রামিং কৌশলগুলিকে সম্মান করার জন্য বছরের পর বছর কাটিয়েছেন।
এই ছদ্মবেশী মধুর ব্যারেলে - CUDA এর প্রশংসা - এটি মলমের মধ্যে একটি মাছি রাখা মূল্যবান, অর্থাৎ বিধিনিষেধ। প্রোগ্রাম করা প্রয়োজন এমন প্রতিটি সমস্যা CUDA ব্যবহার করে সমাধান করা যায় না। অফিসের রুটিন কাজগুলির সমাধান দ্রুত করা সম্ভব হবে না, তবে ওয়ার্ল্ড অফ ওয়ারক্রাফ্টে একই ধরণের হাজার হাজার যোদ্ধার আচরণ গণনা করতে আপনি CUDA-কে বিশ্বাস করতে পারেন। তবে এটি একটি তৈরি করা কাজ। আসুন CUDA ইতিমধ্যেই খুব কার্যকরভাবে কী সমাধান করে তার উদাহরণ দেখি।
সৎ কাজ
CUDA একটি অত্যন্ত বাস্তবসম্মত প্রযুক্তি। তার ভিডিও কার্ডগুলিতে এর সমর্থন বাস্তবায়ন করার পরে, nVidia বেশ সঠিকভাবে আশা করেছিল যে CUDA ব্যানারটি বিশ্ববিদ্যালয়ের পরিবেশ এবং বাণিজ্য উভয় ক্ষেত্রেই অনেক উত্সাহী গ্রহণ করবে। এবং তাই এটি ঘটেছে. CUDA-ভিত্তিক প্রকল্পগুলি লাইভ এবং সুবিধা নিয়ে আসে।
NVIDIA PhysX
তাদের পরবর্তী গেমিং মাস্টারপিসের বিজ্ঞাপন দেওয়ার সময়, নির্মাতারা প্রায়শই এর 3D বাস্তবতার উপর জোর দেন। কিন্তু 3D গেমের জগত যতই বাস্তব হোক না কেন, যদি পদার্থবিদ্যার প্রাথমিক নিয়ম যেমন মাধ্যাকর্ষণ, ঘর্ষণ এবং হাইড্রোডাইনামিক্স ভুলভাবে প্রয়োগ করা হয়, তাহলে মিথ্যা তাৎক্ষণিকভাবে অনুভূত হবে।
NVIDIA PhysX পদার্থবিদ্যা ইঞ্জিনের ক্ষমতাগুলির মধ্যে একটি হল টিস্যুগুলির সাথে বাস্তবসম্মত কাজ।
মৌলিক ভৌত আইনের কম্পিউটার সিমুলেশনের জন্য অ্যালগরিদম প্রয়োগ করা একটি অত্যন্ত শ্রম-নিবিড় কাজ। এই ক্ষেত্রের সবচেয়ে বিখ্যাত কোম্পানিগুলি হল আইরিশ কোম্পানি হ্যাভোক যার ক্রস-প্ল্যাটফর্ম ফিজিক্যাল হ্যাভোক ফিজিক্স এবং ক্যালিফোর্নিয়ান এজিয়া - বিশ্বের প্রথম ফিজিক্যাল প্রসেসর (PPU - ফিজিক্স প্রসেসিং ইউনিট) এবং সংশ্লিষ্ট PhysX ফিজিক্স ইঞ্জিনের পূর্বপুরুষ। তাদের মধ্যে প্রথমটি, যদিও ইন্টেল দ্বারা অর্জিত, এখন সক্রিয়ভাবে ATI ভিডিও কার্ড এবং AMD প্রসেসরের জন্য Havok ইঞ্জিন অপ্টিমাইজ করার ক্ষেত্রে কাজ করছে। কিন্তু Ageia এর PhysX ইঞ্জিন সহ nVidia-এর অংশ হয়ে উঠেছে। একই সময়ে, এনভিডিয়া ফিজএক্সকে CUDA প্রযুক্তির সাথে মানিয়ে নেওয়ার বরং কঠিন সমস্যার সমাধান করেছে।
পরিসংখ্যানের কারণে এটি সম্ভব হয়েছে। এটি পরিসংখ্যানগতভাবে প্রমাণিত হয়েছে যে একটি জিপিইউ যতই জটিল রেন্ডারিং সঞ্চালন করুক না কেন, এর কিছু কোর এখনও নিষ্ক্রিয়। এই কোরের উপরই ফিজএক্স ইঞ্জিন চলে।
CUDA-কে ধন্যবাদ, গেমের জগতের পদার্থবিদ্যার সাথে সম্পর্কিত গণনার সিংহভাগ ভিডিও কার্ডে সঞ্চালিত হতে শুরু করে। সেন্ট্রাল প্রসেসরের ফ্রিড-আপ পাওয়ার অন্যান্য গেমপ্লে সমস্যা সমাধানের জন্য ব্যবহার করা হয়েছিল। ফলাফল আসতে বেশি দিন ছিল না। বিশেষজ্ঞদের মতে, CUDA-তে চলমান PhysX-এর সাথে গেমপ্লেতে পারফরম্যান্স লাভ কমপক্ষে একটি ক্রম বৃদ্ধি পেয়েছে। শারীরিক আইন উপলব্ধি করার সম্ভাবনাও বেড়েছে। CUDA বহুমাত্রিক বস্তুর জন্য ঘর্ষণ, মাধ্যাকর্ষণ এবং আমাদের কাছে পরিচিত অন্যান্য জিনিসগুলি বাস্তবায়নের রুটিন গণনার যত্ন নেয়। এখন কেবল নায়ক এবং তাদের সরঞ্জামগুলিই আমরা পরিচিত ভৌত জগতের আইনের সাথে পুরোপুরি ফিট করে না, তবে ধুলো, কুয়াশা, বিস্ফোরণ তরঙ্গ, শিখা এবং জলও।
NVIDIA টেক্সচার টুলস 2 টেক্সচার কম্প্রেশন প্যাকেজের CUDA সংস্করণ
আপনি কি আধুনিক গেমগুলিতে বাস্তবসম্মত বস্তু পছন্দ করেন? এটা টেক্সচার ডেভেলপারদের ধন্যবাদ বলার মূল্য. কিন্তু টেক্সচারে যত বেশি বাস্তবতা আছে, এর আয়তন তত বেশি। আরও এটি মূল্যবান স্মৃতি গ্রহণ করে। এটি এড়াতে, টেক্সচারগুলি প্রাক-সংকুচিত হয় এবং প্রয়োজন অনুসারে গতিশীলভাবে ডিকম্প্রেস করা হয়। এবং কম্প্রেশন এবং ডিকম্প্রেশন বিশুদ্ধ হিসাব। টেক্সচারের সাথে কাজ করার জন্য, nVidia NVIDIA টেক্সচার টুলস প্যাকেজ প্রকাশ করেছে। এটি ডাইরেক্টএক্স টেক্সচারের (তথাকথিত এইচএফ ফর্ম্যাট) দক্ষ কম্প্রেশন এবং ডিকম্প্রেশন সমর্থন করে। এই প্যাকেজের দ্বিতীয় সংস্করণটি DirectX 11 প্রযুক্তিতে প্রয়োগ করা BC4 এবং BC5 কম্প্রেশন অ্যালগরিদমগুলির জন্য সমর্থন করে৷ কিন্তু মূল বিষয় হল NVIDIA টেক্সচার টুলস 2 CUDA সমর্থন অন্তর্ভুক্ত করে৷ nVidia-এর মতে, এটি টেক্সচার কম্প্রেশন এবং ডিকম্প্রেশন কাজগুলিতে কর্মক্ষমতা 12-গুণ বৃদ্ধি করে। এর মানে হল যে গেমপ্লে ফ্রেমগুলি দ্রুত লোড হবে এবং খেলোয়াড়কে তাদের বাস্তবতা দিয়ে আনন্দিত করবে।
NVIDIA টেক্সচার টুলস 2 প্যাকেজটি CUDA এর সাথে কাজ করার জন্য ডিজাইন করা হয়েছে। টেক্সচার কম্প্রেস এবং ডিকম্প্রেস করার সময় কর্মক্ষমতা লাভ সুস্পষ্ট।
CUDA ব্যবহার করে ভিডিও নজরদারির দক্ষতা উল্লেখযোগ্যভাবে উন্নত করতে পারে।
রিয়েল-টাইম ভিডিও স্ট্রিম প্রক্রিয়াকরণ
যে যাই বলুক না কেন, বর্তমান বিশ্ব, গুপ্তচরবৃত্তির দৃষ্টিকোণ থেকে, অরওয়েলের বিগ ব্রাদারের জগতের চেয়ে অনেক কাছাকাছি। গাড়ির চালক এবং সর্বজনীন স্থানে দর্শনার্থী উভয়ই ভিডিও ক্যামেরার দৃষ্টিশক্তি অনুভব করেন।
ভিডিও তথ্যের পূর্ণ-প্রবাহিত নদীগুলি তার প্রক্রিয়াকরণের কেন্দ্রগুলিতে প্রবাহিত হয় এবং... একটি সংকীর্ণ লিঙ্কে চলে যায় - একজন ব্যক্তি। বেশিরভাগ ক্ষেত্রে, তিনি ভিডিও জগতের নিরীক্ষণকারী শেষ কর্তৃপক্ষ। তদুপরি, কর্তৃপক্ষ সবচেয়ে কার্যকর নয়। চোখ মেলে, বিভ্রান্ত হয় এবং ঘুমিয়ে পড়ার চেষ্টা করে।
CUDA-কে ধন্যবাদ, একটি ভিডিও স্ট্রীমে একাধিক বস্তুর একযোগে ট্র্যাকিংয়ের জন্য অ্যালগরিদম বাস্তবায়ন করা সম্ভব হয়েছে। এই ক্ষেত্রে, প্রক্রিয়াটি বাস্তব সময়ে ঘটে এবং ভিডিওটি সম্পূর্ণ 30 fps হয়। আধুনিক মাল্টি-কোর সিপিইউতে এই জাতীয় অ্যালগরিদম বাস্তবায়নের তুলনায়, CUDA কার্যক্ষমতাতে দুই বা তিনগুণ বৃদ্ধি দেয় এবং আপনি দেখতে পাচ্ছেন, এটি অনেক বেশি।
ভিডিও রূপান্তর, অডিও ফিল্টারিং
Badaboom ভিডিও রূপান্তরকারী রূপান্তর গতি বাড়ানোর জন্য CUDA ব্যবহার করে প্রথম।
FullHD গুণমানে এবং একটি বড় স্ক্রিনে একটি নতুন ভিডিও ভাড়ার পণ্য দেখতে ভালো লাগছে৷ তবে আপনি রাস্তায় আপনার সাথে একটি বড় স্ক্রিন নিতে পারবেন না এবং ফুলএইচডি ভিডিও কোডেক একটি মোবাইল গ্যাজেটের কম-পাওয়ার প্রসেসরে হেঁচকি দেবে। রূপান্তর উদ্ধার আসে. কিন্তু যারা বাস্তবে এর সম্মুখীন হয়েছেন তাদের বেশিরভাগই দীর্ঘ রূপান্তর সময় সম্পর্কে অভিযোগ করেন। এটি বোধগম্য, প্রক্রিয়াটি রুটিন, সমান্তরালকরণের জন্য উপযুক্ত, এবং সিপিইউতে এটি কার্যকর করা খুব অনুকূল নয়।
কিন্তু CUDA একটি ঠুং ঠুং শব্দ সঙ্গে এটি copes. প্রথম সাইনটি হল ইলেভেনটাল থেকে বাদাবুম কনভার্টার। বাদাবুম ডেভেলপাররা CUDA বেছে নেওয়ার সময় সঠিক সিদ্ধান্ত নিয়েছিল। পরীক্ষাগুলি দেখায় যে এটি একটি স্ট্যান্ডার্ড ঘন্টা এবং দেড় ঘন্টার মুভিকে বিশ মিনিটেরও কম সময়ে iPhone/iPod Touch ফরম্যাটে রূপান্তর করে। এবং এটি সত্ত্বেও যে শুধুমাত্র CPU ব্যবহার করার সময়, এই প্রক্রিয়াটি এক ঘন্টারও বেশি সময় নেয়।
CUDA এবং পেশাদার সঙ্গীত প্রেমীদের সাহায্য করে। তাদের মধ্যে যে কেউ একটি কার্যকর এফআইআর ক্রসওভারের জন্য অর্ধেক রাজ্য দেবে - ফিল্টারের একটি সেট যা সাউন্ড স্পেকট্রামকে কয়েকটি ব্যান্ডে বিভক্ত করে। এই প্রক্রিয়াটি অত্যন্ত শ্রম-নিবিড় এবং প্রচুর পরিমাণে অডিও উপাদান সহ, সাউন্ড ইঞ্জিনিয়ারকে কয়েক ঘন্টার জন্য "ধূমপান" করতে বাধ্য করে। একটি CUDA-ভিত্তিক এফআইআর ক্রসওভার বাস্তবায়ন করা এর কাজকে শতগুণ ত্বরান্বিত করে।
চুদা ভাবী
GPGPU প্রযুক্তিকে বাস্তবে পরিণত করার পর, CUDA তার খ্যাতির উপর বিশ্রাম নিচ্ছে না। যেমনটি সর্বত্র ঘটে, প্রতিফলনের নীতিটি CUDA-তে কাজ করে: এখন শুধুমাত্র nVidia ভিডিও প্রসেসরের আর্কিটেকচারই CUDA SDK সংস্করণগুলির বিকাশকে প্রভাবিত করে না, কিন্তু CUDA প্রযুক্তি নিজেই nVidia-কে তার চিপগুলির স্থাপত্য পুনর্বিবেচনা করতে বাধ্য করে৷ এই ধরনের প্রতিফলনের একটি উদাহরণ হল nVidia ION প্ল্যাটফর্ম। এর দ্বিতীয় সংস্করণটি বিশেষভাবে CUDA সমস্যা সমাধানের জন্য অপ্টিমাইজ করা হয়েছে। এর মানে হল যে এমনকি তুলনামূলকভাবে সস্তা হার্ডওয়্যার সমাধানেও, গ্রাহকরা CUDA-এর সমস্ত শক্তি এবং উজ্জ্বল ক্ষমতা পাবেন৷
এবং এটি ডিজাইন করা হয়েছে হোস্ট কোড (প্রধান, কন্ট্রোল কোড) এবং ডিভাইস কোড (হার্ডওয়্যার কোড) (.cu এক্সটেনশন সহ ফাইলগুলি) যেকোন প্রোগ্রামিং পরিবেশে চূড়ান্ত প্রোগ্রাম বা লাইব্রেরি একত্রিত করার প্রক্রিয়ার জন্য উপযুক্ত অবজেক্ট ফাইলগুলিতে অনুবাদ করার জন্য, উদাহরণস্বরূপ NetBeans মধ্যে.
CUDA আর্কিটেকচার একটি গ্রিড মেমরি মডেল, ক্লাস্টার থ্রেড মডেলিং এবং SIMD নির্দেশাবলী ব্যবহার করে। শুধুমাত্র উচ্চ-পারফরম্যান্স গ্রাফিক্স কম্পিউটিংয়ের জন্য নয়, nVidia ভিডিও কার্ড ব্যবহার করে বিভিন্ন বৈজ্ঞানিক কম্পিউটিংয়ের জন্যও প্রযোজ্য। বিজ্ঞানী এবং গবেষকরা জ্যোতির্পদার্থবিদ্যা, কম্পিউটেশনাল বায়োলজি এবং কেমিস্ট্রি, ফ্লুইড ডাইনামিক মডেলিং, ইলেক্ট্রোম্যাগনেটিক মিথস্ক্রিয়া, কম্পিউটেড টমোগ্রাফি, সিসমিক অ্যানালাইসিস এবং আরও অনেক কিছু সহ বিভিন্ন ক্ষেত্রে CUDA ব্যবহার করেন। CUDA এর OpenGL এবং Direct3D ব্যবহার করে অ্যাপ্লিকেশনের সাথে সংযোগ করার ক্ষমতা রয়েছে। লিনাক্স, ম্যাক ওএস এক্স এবং উইন্ডোজের মতো অপারেটিং সিস্টেমের জন্য CUDA হল ক্রস-প্ল্যাটফর্ম সফ্টওয়্যার।
22শে মার্চ, 2010-এ, nVidia CUDA Toolkit 3.0 প্রকাশ করে, যাতে OpenCL-এর জন্য সমর্থন ছিল।
যন্ত্রপাতি
CUDA প্ল্যাটফর্মটি অষ্টম-প্রজন্মের NVIDIA G80 চিপ প্রকাশের সাথে প্রথম বাজারে উপস্থিত হয়েছিল এবং পরবর্তী সমস্ত সিরিজের গ্রাফিক্স চিপগুলিতে উপস্থিত হয়েছিল, যা GeForce, Quadro এবং NVidia Tesla এক্সিলারেটর পরিবারগুলিতে ব্যবহৃত হয়।
CUDA SDK-কে সমর্থন করার জন্য হার্ডওয়্যারের প্রথম সিরিজ, G8x-এ একটি 32-বিট একক-নির্ভুল ভেক্টর প্রসেসর ছিল যা CUDA SDK-কে API হিসাবে ব্যবহার করে (CUDA C ডাবল টাইপ সমর্থন করে, কিন্তু এর নির্ভুলতা এখন 32-বিটে কমিয়ে আনা হয়েছে। ভাসমান পয়েন্ট)। পরবর্তীতে GT200 প্রসেসরের 64-বিট নির্ভুলতার জন্য সমর্থন রয়েছে (শুধুমাত্র SFU), কিন্তু কর্মক্ষমতা 32-বিট নির্ভুলতার তুলনায় উল্লেখযোগ্যভাবে খারাপ (কারণ যে প্রতি স্ট্রিম মাল্টিপ্রসেসরে মাত্র দুটি SFU আছে, যেখানে আটটি স্কেলার প্রসেসর রয়েছে)। GPU হার্ডওয়্যার মাল্টিথ্রেডিং সংগঠিত করে, যা আপনাকে GPU এর সমস্ত সংস্থান ব্যবহার করতে দেয়। এইভাবে, গ্রাফিক্স অ্যাক্সিলারেটরে ফিজিক্যাল অ্যাক্সিলারেটরের ফাংশন স্থানান্তর করার সম্ভাবনা খোলা হয় (বাস্তবায়নের একটি উদাহরণ হল nVidia PhysX)। এটি জটিল নন-গ্রাফিকাল গণনা সম্পাদনের জন্য কম্পিউটার গ্রাফিক্স হার্ডওয়্যার ব্যবহার করার জন্য বিস্তৃত সম্ভাবনা উন্মুক্ত করে: উদাহরণস্বরূপ, কম্পিউটেশনাল বায়োলজি এবং বিজ্ঞানের অন্যান্য শাখায়।
সুবিধাদি
গ্রাফিক্স API-এর মাধ্যমে সাধারণ-উদ্দেশ্য কম্পিউটিং সংগঠিত করার ঐতিহ্যগত পদ্ধতির তুলনায়, এই ক্ষেত্রে CUDA আর্কিটেকচারের নিম্নলিখিত সুবিধা রয়েছে:
বিধিনিষেধ
- ডিভাইসে নির্বাহযোগ্য সমস্ত ফাংশন পুনরাবৃত্তি সমর্থন করে না (CUDA টুলকিট 3.1 পয়েন্টার এবং পুনরাবৃত্তি সমর্থন করে) এবং কিছু অন্যান্য সীমাবদ্ধতা রয়েছে
সমর্থিত GPU এবং গ্রাফিক্স এক্সিলারেটর
CUDA প্রযুক্তির জন্য ঘোষিত পূর্ণ সমর্থন সহ সরঞ্জাম প্রস্তুতকারক Nvidia থেকে ডিভাইসের তালিকা অফিসিয়াল Nvidia ওয়েবসাইটে প্রদান করা হয়েছে: CUDA-Enabled GPU Products (English)।
প্রকৃতপক্ষে, নিম্নলিখিত পেরিফেরালগুলি বর্তমানে পিসি হার্ডওয়্যার বাজারে CUDA প্রযুক্তি সমর্থন করে:
স্পেসিফিকেশন সংস্করণ | জিপিইউ | ভিডিও কার্ড |
---|---|---|
1.0 | G80, G92, G92b, G94, G94b | GeForce 8800GTX/Ultra, 9400GT, 9600GT, 9800GT, Tesla C/D/S870, FX4/5600, 360M, GT 420 |
1.1 | G86, G84, G98, G96, G96b, G94, G94b, G92, G92b | GeForce 8400GS/GT, 8600GT/GTS, 8800GT/GTS, 9600 GSO, 9800GTX/GX2, GTS 250, GT 120/30/40, FX 4/570, 3/580, 17020, 170X, 170xM /370M, 3/5/770M, 16/17/27/28/36/37/3800M, NVS420/50 |
1.2 | GT218, GT216, GT215 | GeForce 210, GT 220/40, FX380 LP, 1800M, 370/380M, NVS 2/3100M |
1.3 | GT200, GT200b | GeForce GTX 260, GTX 275, GTX 280, GTX 285, GTX 295, Tesla C/M1060, S1070, Quadro CX, FX 3/4/5800 |
2.0 | GF100, GF110 | GeForce (GF100) GTX 465, GTX 470, GTX 480, Tesla C2050, C2070, S/M2050/70, Quadro Plex 7000, Quadro 4000, 5000, 6000, GFGT504, G1508 (GFTXTI, G1508) , GTX580, GTX590 |
2.1 | GF104, GF114, GF116, GF108, GF106 | GeForce 610M, GT 430, GT 440, GTS 450, GTX 460, GTX 550 Ti, GTX 560, GTX 560 Ti, 500M, Quadro 600, 2000 |
3.0 | GK104, GK106, GK107 | GeForce GTX 690, GTX 680, GTX 670, GTX 660 Ti, GTX 660, GTX 650 Ti, GTX 650, GT 640, GeForce GTX 680MX, GeForce GTX 680M, GFX6ce60M, GFX650M, GFX660M, GTX650 660M, GeForce GT 650M, GeForce GT 645M, GeForce GT 640M |
3.5 | GK110 |
|
|
|
|
|
- মডেল Tesla C1060, Tesla S1070, Tesla C2050/C2070, Tesla M2050/M2070, Tesla S2050 দ্বিগুণ নির্ভুলতার সাথে GPU গণনার অনুমতি দেয়।
বিভিন্ন সংস্করণের বৈশিষ্ট্য এবং স্পেসিফিকেশন
বৈশিষ্ট্য সমর্থন (অতালিকাভুক্ত বৈশিষ্ট্য হল সমস্ত গণনা ক্ষমতার জন্য সমর্থিত) |
গণনার ক্ষমতা (সংস্করণ) | ||||
---|---|---|---|---|---|
1.0 | 1.1 | 1.2 | 1.3 | 2.x | |
গ্লোবাল মেমরিতে 32-বিট শব্দ |
না | হ্যাঁ | |||
গ্লোবাল মেমরিতে ভাসমান পয়েন্টের মান |
|||||
পূর্ণসংখ্যা পারমাণবিক ফাংশন অপারেটিং শেয়ার করা মেমরিতে 32-বিট শব্দ |
না | হ্যাঁ | |||
atomicExch() 32-বিটে কাজ করছে ভাগ করা মেমরিতে ভাসমান পয়েন্টের মান |
|||||
পূর্ণসংখ্যা পারমাণবিক ফাংশন অপারেটিং গ্লোবাল মেমরিতে 64-বিট শব্দ |
|||||
ওয়ার্প ভোট ফাংশন | |||||
ডাবল-নির্ভুলতা ফ্লোটিং-পয়েন্ট অপারেশন | না | হ্যাঁ | |||
পারমাণবিক ফাংশন 64-বিটে কাজ করে ভাগ করা মেমরিতে পূর্ণসংখ্যার মান |
না | হ্যাঁ | |||
ফ্লোটিং-পয়েন্ট পারমাণবিক সংযোজন চালু আছে গ্লোবাল এবং শেয়ার করা মেমরিতে 32-বিট শব্দ |
|||||
_ব্যালট() | |||||
_থ্রেডফেন্স_সিস্টেম() | |||||
_syncthreads_count(), _syncthreads_and(), _syncthreads_or() |
|||||
সারফেস ফাংশন | |||||
থ্রেড ব্লকের 3D গ্রিড |
প্রযুক্তিগত বিবরণ | গণনার ক্ষমতা (সংস্করণ) | ||||
---|---|---|---|---|---|
1.0 | 1.1 | 1.2 | 1.3 | 2.x | |
থ্রেড ব্লকের গ্রিডের সর্বোচ্চ মাত্রা | 2 | 3 | |||
থ্রেড ব্লকের একটি গ্রিডের সর্বাধিক x-, y- বা z-মাত্রা | 65535 | ||||
থ্রেড ব্লকের সর্বোচ্চ মাত্রা | 3 | ||||
একটি ব্লকের সর্বাধিক x- বা y-মাত্রা | 512 | 1024 | |||
একটি ব্লকের সর্বাধিক z-মাত্রা | 64 | ||||
প্রতি ব্লকে সর্বাধিক সংখ্যক থ্রেড | 512 | 1024 | |||
ওয়ার্প সাইজ | 32 | ||||
মাল্টিপ্রসেসর প্রতি আবাসিক ব্লকের সর্বাধিক সংখ্যা | 8 | ||||
মাল্টিপ্রসেসর প্রতি আবাসিক warps সর্বাধিক সংখ্যা | 24 | 32 | 48 | ||
প্রতি মাল্টিপ্রসেসরে সর্বাধিক সংখ্যক রেসিডেন্ট থ্রেড | 768 | 1024 | 1536 | ||
মাল্টিপ্রসেসর প্রতি 32-বিট রেজিস্টারের সংখ্যা | 8K | 16K | 32 কে | ||
মাল্টিপ্রসেসর প্রতি শেয়ার করা মেমরির সর্বোচ্চ পরিমাণ | ১৬ কেবি | 48 KB | |||
ভাগ করা মেমরি ব্যাঙ্কের সংখ্যা | 16 | 32 | |||
প্রতি থ্রেডে স্থানীয় মেমরির পরিমাণ | ১৬ কেবি | 512 KB | |||
ধ্রুবক মেমরি আকার | 64 কেবি | ||||
ধ্রুবক মেমরির জন্য মাল্টিপ্রসেসর প্রতি ক্যাশে ওয়ার্কিং সেট | 8 KB | ||||
টেক্সচার মেমরির জন্য মাল্টিপ্রসেসর প্রতি ক্যাশে ওয়ার্কিং সেট | ডিভাইস নির্ভরশীল, 6 KB থেকে 8 KB এর মধ্যে | ||||
1D টেক্সচারের জন্য সর্বাধিক প্রস্থ |
8192 | 32768 | |||
1D টেক্সচারের জন্য সর্বাধিক প্রস্থ রেফারেন্স লিনিয়ার মেমরির সাথে আবদ্ধ |
2 27 | ||||
সর্বোচ্চ প্রস্থ এবং স্তর সংখ্যা একটি 1D স্তরযুক্ত টেক্সচার রেফারেন্সের জন্য |
8192 x 512 | 16384 x 2048 | |||
2D এর জন্য সর্বাধিক প্রস্থ এবং উচ্চতা টেক্সচার রেফারেন্স আবদ্ধ লিনিয়ার মেমরি বা একটি CUDA অ্যারে |
65536 x 32768 | 65536 x 65535 | |||
সর্বাধিক প্রস্থ, উচ্চতা এবং সংখ্যা একটি 2D স্তরযুক্ত টেক্সচার রেফারেন্সের জন্য স্তরগুলির |
8192 x 8192 x 512 | 16384 x 16384 x 2048 | |||
সর্বাধিক প্রস্থ, উচ্চতা এবং গভীরতা রৈখিক আবদ্ধ একটি 3D টেক্সচার রেফারেন্সের জন্য মেমরি বা একটি CUDA অ্যারে |
2048 x 2048 x 2048 | ||||
টেক্সচার সর্বোচ্চ সংখ্যা যে একটি কার্নেলের সাথে আবদ্ধ হতে পারে |
128 | ||||
একটি 1D পৃষ্ঠের জন্য সর্বাধিক প্রস্থ একটি CUDA অ্যারের সাথে আবদ্ধ রেফারেন্স |
না সমর্থিত |
8192 | |||
একটি 2D এর জন্য সর্বাধিক প্রস্থ এবং উচ্চতা একটি CUDA অ্যারের সাথে আবদ্ধ পৃষ্ঠের রেফারেন্স |
8192 x 8192 | ||||
পৃষ্ঠের সর্বোচ্চ সংখ্যা যে একটি কার্নেলের সাথে আবদ্ধ হতে পারে |
8 | ||||
প্রতি নির্দেশের সর্বাধিক সংখ্যা কার্নেল |
2 মিলিয়ন |
উদাহরণ
চুদাঅ্যারে* cu_array; গঠন< float , 2 >টেক্স; // অ্যারে বরাদ্দ করুন cudaMalloc( & cu_array, cudaCreateChannelDesc< float>(), প্রস্থ উচ্চতা) ; // cudaMemcpy (cu_array, চিত্র, প্রস্থ* উচ্চতা, cudaMemcpyHostToDevice) অ্যারেতে চিত্রের ডেটা অনুলিপি করুন ; // টেক্সচারে অ্যারে বাঁধুনচুদাবিন্ডটেক্সচার (টেক্স, কিউ_অ্যারে); // কার্নেল dim3 ব্লকডিম চালান(16, 16, 1); dim3 gridDim(প্রস্থ / blockDim.x, উচ্চতা / blockDim.y, 1) ; কার্নেল<<< gridDim, blockDim, 0 >>> (d_odata, প্রস্থ, উচ্চতা); cudaUnbindTexture(tex); __global__ অকার্যকর কার্নেল (ফ্লোট * ওডাটা, int উচ্চতা, int প্রস্থ) ( স্বাক্ষরবিহীন int x = blockIdx.x * blockDim.x + threadIdx.x ; স্বাক্ষরবিহীন int y = blockIdx.y * blockDim.y + threadIdx.y ; c = ফ্লোট texfetch(tex, x, y) ; odata[ y* প্রস্থ + x] = c; )
pycuda.driver ইম্পোর্ট করুন drv import numpy drv.init() dev = drv.Device(0) ctx = dev.make_context() mod = drv.SourceModule( """ __global__ void multiply_them(float *dest, float *a, float *b) ( const int i = threadIdx.x; dest[i] = a[i] * b[i]; ) """) multiply_them = mod.get_function ("multiply_them" ) a = numpy.random .randn (400 ) .astype (numpy.float32 ) b = numpy.random .randn (400 ) .astype (numpy_3st. লাইক) (a) multiply_them( drv.Out (dest) , drv.In (a) , drv.In (b) , block= (400 , 1 , 1 ) ) প্রিন্ট dest-a*b
বিশ্ববিদ্যালয়গুলোতে CUDA একটি বিষয় হিসেবে
ডিসেম্বর 2009 পর্যন্ত, CUDA সফ্টওয়্যার মডেলটি বিশ্বের 269 টি বিশ্ববিদ্যালয়ে পড়ানো হয়। রাশিয়ায়, সেন্ট পিটার্সবার্গ পলিটেকনিক ইউনিভার্সিটি, ইয়ারোস্লাভ স্টেট ইউনিভার্সিটিতে CUDA-র প্রশিক্ষণ কোর্স দেওয়া হয়। পি.জি. ডেমিডভ, মস্কো, নিজনি নোভগোরড, সেন্ট পিটার্সবার্গ, টভার, কাজান, নভোসিবিরস্ক, নভোসিবিরস্ক স্টেট টেকনিক্যাল ইউনিভার্সিটি, ওমস্ক এবং পার্ম স্টেট ইউনিভার্সিটি, ইন্টারন্যাশনাল ইউনিভার্সিটি অফ নেচার অফ সোসাইটি অ্যান্ড ম্যান "ডুবনা", ইভানোভো স্টেট এনার্জি ইউনিভার্সিটি, বেলগোরোড স্টেট ইউনিভার্সিটি , MSTU তাদের. বাউম্যান, রাশিয়ান কেমিক্যাল টেকনিক্যাল ইউনিভার্সিটির নামানুসারে। মেন্ডেলিভ, আন্তঃআঞ্চলিক সুপার কম্পিউটার সেন্টার RAS, . উপরন্তু, 2009 সালের ডিসেম্বরে, এটি ঘোষণা করা হয়েছিল যে প্রথম রাশিয়ান বৈজ্ঞানিক ও শিক্ষামূলক কেন্দ্র "সমান্তরাল কম্পিউটিং", যা দুবনা শহরে অবস্থিত, কাজ শুরু করেছে, যার কাজগুলির মধ্যে রয়েছে GPU-তে জটিল কম্পিউটিং সমস্যা সমাধানের প্রশিক্ষণ এবং পরামর্শ।
ইউক্রেনে, কিয়েভ ইনস্টিটিউট অফ সিস্টেম অ্যানালাইসিসে CUDA-র কোর্স পড়ানো হয়।
লিঙ্ক
অফিসিয়াল সম্পদ
- CUDA জোন (রাশিয়ান) - অফিসিয়াল CUDA ওয়েবসাইট
- CUDA GPU কম্পিউটিং (ইংরেজি) - CUDA কম্পিউটিংয়ের জন্য নিবেদিত অফিসিয়াল ওয়েব ফোরাম
অনানুষ্ঠানিক সম্পদ
টমের হার্ডওয়্যার- দিমিত্রি চেকানোভ। nVidia CUDA: একটি ভিডিও কার্ডে কম্পিউটিং নাকি CPU এর মৃত্যু? . টমস হার্ডওয়্যার (22 জুন, 2008) সংরক্ষণাগারভুক্ত
- দিমিত্রি চেকানোভ। nVidia CUDA: গণ বাজারের জন্য বেঞ্চমার্কিং GPU অ্যাপ্লিকেশন। টমস হার্ডওয়্যার (মে 19, 2009)। 4 মার্চ, 2012 তারিখে মূল থেকে আর্কাইভ করা হয়েছে। মে 19, 2009 পুনরুদ্ধার করা হয়েছে।
- আলেক্সি বেরিলো। NVIDIA CUDA - GPU-তে নন-গ্রাফিকাল কম্পিউটিং। অংশ 1 . iXBT.com (সেপ্টেম্বর 23, 2008)। 4 মার্চ, 2012 তারিখে মূল থেকে আর্কাইভ করা হয়েছে। 20 জানুয়ারী, 2009 পুনরুদ্ধার করা হয়েছে।
- আলেক্সি বেরিলো। NVIDIA CUDA - GPU-তে নন-গ্রাফিকাল কম্পিউটিং। অংশ ২ . iXBT.com (22 অক্টোবর, 2008)। - NVIDIA CUDA বাস্তবায়নের উদাহরণ। 4 মার্চ, 2012 তারিখে মূল থেকে আর্কাইভ করা হয়েছে। 20 জানুয়ারী, 2009 পুনরুদ্ধার করা হয়েছে।
- বোরেসকভ আলেক্সি ভিক্টোরোভিচ। CUDA বেসিক (20 জানুয়ারী, 2009)। 4 মার্চ, 2012 তারিখে মূল থেকে আর্কাইভ করা হয়েছে। 20 জানুয়ারী, 2009 পুনরুদ্ধার করা হয়েছে।
- ভ্লাদিমির ফ্রোলভ। CUDA প্রযুক্তির পরিচিতি। অনলাইন ম্যাগাজিন "কম্পিউটার গ্রাফিক্স এবং মাল্টিমিডিয়া" (ডিসেম্বর 19, 2008)। 4 মার্চ, 2012 তারিখে মূল থেকে আর্কাইভ করা হয়েছে। অক্টোবর 28, 2009 সংগৃহীত।
- ইগর ওস্কোলকভ। NVIDIA CUDA হল বড় কম্পিউটিং জগতের একটি সাশ্রয়ী মূল্যের টিকিট৷ Computerra (30 এপ্রিল, 2009)। সংগৃহীত মে 3, 2009.
- ভ্লাদিমির ফ্রোলভ। CUDA প্রযুক্তির ভূমিকা (আগস্ট 1, 2009)। 4 মার্চ, 2012 তারিখে মূল থেকে আর্কাইভ করা। 3 এপ্রিল, 2010 তারিখে সংগৃহীত।
- GPGPU.ru। কম্পিউটিংয়ের জন্য ভিডিও কার্ড ব্যবহার করা
- . সমান্তরাল কম্পিউটিং কেন্দ্র
মন্তব্য
আরো দেখুন
এনভিডিয়া | ||||||
---|---|---|---|---|---|---|
গ্রাফিক প্রসেসর |
|
আধুনিক প্রসেসরগুলির বিকাশে, কোরের সংখ্যা ধীরে ধীরে বৃদ্ধির প্রবণতা রয়েছে, যা সমান্তরাল কম্পিউটিংয়ে তাদের ক্ষমতা বৃদ্ধি করে। যাইহোক, জিপিইউগুলি দীর্ঘদিন ধরে উপলব্ধ রয়েছে যা এই ক্ষেত্রে সিপিইউগুলির থেকে উল্লেখযোগ্যভাবে উচ্চতর। এবং জিপিইউগুলির এই ক্ষমতাগুলি ইতিমধ্যে কিছু সংস্থাগুলি বিবেচনায় নিয়েছে। নন-টার্গেট কম্পিউটিংয়ের জন্য গ্রাফিক্স এক্সিলারেটর ব্যবহার করার প্রথম প্রচেষ্টা 90 এর দশকের শেষের দিক থেকে করা হয়েছে। তবে শুধুমাত্র শেডারগুলির উত্থানই একটি সম্পূর্ণ নতুন প্রযুক্তির বিকাশের প্রেরণা হয়ে ওঠে এবং 2003 সালে GPGPU (সাধারণ-উদ্দেশ্য গ্রাফিক্স প্রসেসিং ইউনিট) ধারণাটি উপস্থিত হয়েছিল। এই উদ্যোগের বিকাশে একটি গুরুত্বপূর্ণ ভূমিকা BrookGPU দ্বারা পরিচালিত হয়েছিল, যা C ভাষার জন্য একটি বিশেষ এক্সটেনশন। BrookGPU-এর আবির্ভাবের আগে, প্রোগ্রামাররা শুধুমাত্র Direct3D বা OpenGL API-এর মাধ্যমে GPU-এর সাথে কাজ করতে পারত। ব্রুক ডেভেলপারদের একটি পরিচিত পরিবেশের সাথে কাজ করার অনুমতি দেয় এবং কম্পাইলার নিজেই, বিশেষ লাইব্রেরি ব্যবহার করে, নিম্ন স্তরে GPU-এর সাথে মিথস্ক্রিয়া প্রয়োগ করে।
এই ধরনের অগ্রগতি সাহায্য করতে পারেনি কিন্তু এই শিল্পের নেতাদের মনোযোগ আকর্ষণ করতে পারে - AMD এবং NVIDIA, যারা তাদের ভিডিও কার্ডে নন-গ্রাফিকাল কম্পিউটিং-এর জন্য তাদের নিজস্ব সফ্টওয়্যার প্ল্যাটফর্ম তৈরি করতে শুরু করেছিল। GPU ডেভেলপারদের থেকে ভাল কেউ জানে না তাদের পণ্যের সমস্ত সূক্ষ্মতা এবং বৈশিষ্ট্য, যা এই একই কোম্পানিগুলিকে নির্দিষ্ট হার্ডওয়্যার সমাধানগুলির জন্য সফ্টওয়্যার প্যাকেজটিকে যতটা সম্ভব দক্ষতার সাথে অপ্টিমাইজ করতে দেয়৷ বর্তমানে, NVIDIA CUDA (কম্পিউট ইউনিফাইড ডিভাইস আর্কিটেকচার) প্ল্যাটফর্ম তৈরি করছে; AMD একটি অনুরূপ প্রযুক্তিকে CTM (ক্লোজ টু মেটাল) বা AMD স্ট্রিম কম্পিউটিং বলে। আমরা CUDA-এর কিছু ক্ষমতা দেখব এবং GeForce 8800 GT ভিডিও কার্ডের G92 গ্রাফিক্স চিপের কম্পিউটিং ক্ষমতাগুলি অনুশীলনে মূল্যায়ন করব।
তবে প্রথমে, আসুন GPU ব্যবহার করে গণনা সম্পাদনের কিছু সূক্ষ্মতা দেখি। তাদের প্রধান সুবিধা হল যে গ্রাফিক্স চিপ প্রাথমিকভাবে একাধিক থ্রেড চালানোর জন্য ডিজাইন করা হয়েছে, যখন একটি প্রচলিত CPU-এর প্রতিটি কোর ক্রমিক নির্দেশাবলীর একটি স্ট্রীম চালায়। যেকোন আধুনিক GPU হল একটি মাল্টিপ্রসেসর যা একাধিক কম্পিউটিং ক্লাস্টার নিয়ে গঠিত, যার প্রতিটিতে অনেকগুলি ALU রয়েছে। সবচেয়ে শক্তিশালী আধুনিক GT200 চিপটিতে 10টি ক্লাস্টার রয়েছে, যার প্রতিটিতে 24টি স্ট্রিম প্রসেসর রয়েছে। G92 চিপের উপর ভিত্তি করে পরীক্ষিত GeForce 8800 GT ভিডিও কার্ডটিতে 16টি স্ট্রিম প্রসেসর সহ সাতটি বড় কম্পিউটিং ইউনিট রয়েছে। CPU গুলি ভেক্টর গণনার জন্য SIMD SSE ব্লক ব্যবহার করে (একক নির্দেশ একাধিক ডেটা - একটি নির্দেশ একাধিক ডেটাতে কার্যকর করা হয়), যার জন্য ডেটাকে 4টি ভেক্টরে রূপান্তর করতে হয়। GPU থ্রেডগুলিকে স্কেলারভাবে প্রক্রিয়া করে, যেমন একটি নির্দেশ বিভিন্ন থ্রেডে প্রয়োগ করা হয় (SIMT - একক নির্দেশ একাধিক থ্রেড)। এটি ডেভেলপারদের ভেক্টরে ডেটা রূপান্তর করা থেকে বাঁচায় এবং স্ট্রীমগুলিতে নির্বিচারে শাখা তৈরির অনুমতি দেয়। প্রতিটি GPU কম্পিউট ইউনিটের সরাসরি মেমরি অ্যাক্সেস আছে। এবং ভিডিও মেমরি ব্যান্ডউইথ বেশি, বেশ কয়েকটি পৃথক মেমরি কন্ট্রোলার ব্যবহার করার জন্য ধন্যবাদ (টপ-এন্ড G200-এ 8 64-বিট চ্যানেল রয়েছে) এবং উচ্চ অপারেটিং ফ্রিকোয়েন্সি।
সাধারণভাবে, কিছু নির্দিষ্ট কাজে যখন প্রচুর পরিমাণে ডেটা নিয়ে কাজ করা হয়, GPU গুলি CPU গুলির তুলনায় অনেক দ্রুত হয়৷ নীচে আপনি এই বিবৃতিটির একটি চিত্র দেখুন:
চার্টটি 2003 সাল থেকে CPU এবং GPU কর্মক্ষমতা বৃদ্ধির গতিশীলতা দেখায়। NVIDIA তার নথিতে বিজ্ঞাপন হিসাবে এই ডেটাটি উদ্ধৃত করতে পছন্দ করে, তবে সেগুলি কেবল তাত্ত্বিক গণনা এবং বাস্তবে ব্যবধানটি অবশ্যই অনেক ছোট হতে পারে।
তবে এটি যেমনই হোক না কেন, সেখানে GPU গুলির একটি বিশাল সম্ভাবনা রয়েছে যা ব্যবহার করা যেতে পারে এবং যার জন্য সফ্টওয়্যার বিকাশের জন্য একটি নির্দিষ্ট পদ্ধতির প্রয়োজন। এই সমস্তগুলি CUDA হার্ডওয়্যার এবং সফ্টওয়্যার পরিবেশে প্রয়োগ করা হয়, যা বেশ কয়েকটি সফ্টওয়্যার স্তর নিয়ে গঠিত - উচ্চ-স্তরের CUDA রানটাইম API এবং নিম্ন-স্তরের CUDA ড্রাইভার API।
CUDA প্রোগ্রামিংয়ের জন্য স্ট্যান্ডার্ড সি ভাষা ব্যবহার করে, যা ডেভেলপারদের জন্য এর অন্যতম প্রধান সুবিধা। প্রাথমিকভাবে, CUDA-তে BLAS (বেসিক লিনিয়ার অ্যালজেব্রা প্যাকেজ) এবং FFT (ফুরিয়ার ট্রান্সফর্ম) লাইব্রেরি অন্তর্ভুক্ত রয়েছে। CUDA-তে OpenGL বা DirectX গ্রাফিক্স API-এর সাথে যোগাযোগ করার ক্ষমতাও রয়েছে, নিম্ন স্তরে বিকাশ করার ক্ষমতা এবং CPU এবং GPU-এর মধ্যে ডেটা স্ট্রিমগুলির একটি অপ্টিমাইজড বন্টন দ্বারা চিহ্নিত করা হয়। CUDA গণনাগুলি গ্রাফিক্সগুলির সাথে একযোগে সঞ্চালিত হয়, অনুরূপ AMD প্ল্যাটফর্মের বিপরীতে, যেখানে GPU-তে গণনার জন্য একটি বিশেষ ভার্চুয়াল মেশিন চালু করা হয়। কিন্তু এই ধরনের "সহবাস" ত্রুটিতে পরিপূর্ণ হয় যদি গ্রাফিক্স API দ্বারা একটি বড় লোড তৈরি করা হয় যখন CUDA একই সাথে চলছে - সর্বোপরি, গ্রাফিকাল অপারেশনগুলির এখনও একটি উচ্চ অগ্রাধিকার রয়েছে৷ প্ল্যাটফর্মটি 32- এবং 64-বিট অপারেটিং সিস্টেম Windows XP, Windows Vista, MacOS X এবং Linux এর বিভিন্ন সংস্করণের সাথে সামঞ্জস্যপূর্ণ। প্ল্যাটফর্মটি উন্মুক্ত এবং ওয়েবসাইটে, ভিডিও কার্ডের জন্য বিশেষ ড্রাইভার ছাড়াও, আপনি একটি কম্পাইলার, ডিবাগার, স্ট্যান্ডার্ড লাইব্রেরি এবং ডকুমেন্টেশন সহ CUDA টুলকিট, CUDA বিকাশকারী SDK সফ্টওয়্যার প্যাকেজ ডাউনলোড করতে পারেন।
CUDA এর ব্যবহারিক বাস্তবায়নের জন্য, দীর্ঘকাল ধরে এই প্রযুক্তিটি শুধুমাত্র কণা পদার্থবিদ্যা, জ্যোতির্পদার্থবিদ্যা, ওষুধ বা আর্থিক বাজারে পরিবর্তনের পূর্বাভাস ইত্যাদি ক্ষেত্রে অত্যন্ত বিশেষায়িত গাণিতিক গণনার জন্য ব্যবহৃত হয়েছিল। তবে এই প্রযুক্তিটি ধীরে ধীরে সাধারণ ব্যবহারকারীদের কাছাকাছি হয়ে উঠছে, বিশেষত, ফটোশপের জন্য বিশেষ প্লাগ-ইন উপস্থিত হচ্ছে যা GPU এর কম্পিউটিং শক্তি ব্যবহার করতে পারে। একটি বিশেষ পৃষ্ঠায় আপনি NVIDIA CUDA এর ক্ষমতাগুলি ব্যবহার করে এমন প্রোগ্রামগুলির সম্পূর্ণ তালিকা অধ্যয়ন করতে পারেন।
MSI NX8800GT-T2D256E-OC ভিডিও কার্ডে নতুন প্রযুক্তির ব্যবহারিক পরীক্ষা হিসাবে, আমরা TMPGEnc প্রোগ্রামটি ব্যবহার করব। এই পণ্যটি বাণিজ্যিক (সম্পূর্ণ সংস্করণটির দাম $100), কিন্তু MSI ভিডিও কার্ডের জন্য এটি 30 দিনের সময়ের জন্য একটি ট্রায়াল সংস্করণে বোনাস হিসাবে আসে। আপনি বিকাশকারীর ওয়েবসাইট থেকে এই সংস্করণটি ডাউনলোড করতে পারেন, তবে TMPGEnc 4.0 XPress MSI বিশেষ সংস্করণ ইনস্টল করতে আপনার MSI কার্ড থেকে ড্রাইভার সহ আসল ডিস্কের প্রয়োজন - এটি ছাড়া প্রোগ্রামটি ইনস্টল করা হবে না।
CUDA-তে কম্পিউটিং ক্ষমতা সম্পর্কে সর্বাধিক সম্পূর্ণ তথ্য প্রদর্শন করতে এবং অন্যান্য ভিডিও অ্যাডাপ্টারের সাথে তাদের তুলনা করতে, আপনি বিশেষ CUDA-Z ইউটিলিটি ব্যবহার করতে পারেন। এটি আমাদের GeForce 8800GT ভিডিও কার্ড সম্পর্কে তথ্য দেয়:
রেফারেন্স মডেলের তুলনায়, আমাদের কপি উচ্চতর ফ্রিকোয়েন্সিতে কাজ করে: রাস্টার ডোমেন নামমাত্রের চেয়ে 63 মেগাহার্টজ বেশি, এবং শেডার ইউনিটগুলি 174 মেগাহার্টজ দ্রুত, এবং মেমরি 100 মেগাহার্টজ দ্রুত।
শুধুমাত্র CPU ব্যবহার করে এবং নিম্নলিখিত কনফিগারেশনে TMPGEnc প্রোগ্রামে CUDA এর অতিরিক্ত সক্রিয়করণের সাথে গণনা করার সময় আমরা একই HD ভিডিওর রূপান্তর গতির তুলনা করব:
- প্রসেসর: পেন্টিয়াম ডুয়াল-কোর E5200 2.5 GHz;
- মাদারবোর্ড: গিগাবাইট P35-S3;
- মেমরি: 2x1GB GoodRam PC6400 (5-5-5-18-2T)
- ভিডিও কার্ড: MSI NX8800GT-T2D256E-OC;
- হার্ড ড্রাইভ: 320GB WD3200AAKS;
- পাওয়ার সাপ্লাই: CoolerMaster extreme Power 500-PCAP;
- অপারেটিং সিস্টেম: Windows XP SP2;
- TMPGEnc 4.0 XPres 4.6.3.268;
- ভিডিও কার্ড ড্রাইভার: ForceWare 180.60.
DivX 6.8.4 কোডেক ব্যবহার করে এনকোডিং করা হয়েছিল। এই কোডেকের গুণমান সেটিংসে, সমস্ত মান ডিফল্টে রেখে দেওয়া হয়, মাল্টিথ্রেডিং সক্ষম করা হয়।
TMPGEnc-এ মাল্টিথ্রেডিং সমর্থন প্রাথমিকভাবে CPU/GPU সেটিংস ট্যাবে সক্ষম করা হয়েছে। একই বিভাগে CUDA সক্রিয় করা হয়েছে।
আপনি উপরের স্ক্রিনশট থেকে দেখতে পাচ্ছেন, CUDA ব্যবহার করে ফিল্টার প্রক্রিয়াকরণ সক্ষম করা হয়েছে, কিন্তু হার্ডওয়্যার ভিডিও ডিকোডার সক্ষম করা নেই। প্রোগ্রাম ডকুমেন্টেশন সতর্ক করে যে শেষ পরামিতি সক্রিয় করা ফাইল প্রক্রিয়াকরণ সময় বৃদ্ধি করে।
পরীক্ষার ফলাফলের উপর ভিত্তি করে, নিম্নলিখিত তথ্য প্রাপ্ত হয়েছিল:
CUDA সক্ষম সহ 4 GHz এ, আমরা মাত্র কয়েক সেকেন্ড (বা 2%) অর্জন করেছি, যা বিশেষভাবে চিত্তাকর্ষক নয়। তবে কম ফ্রিকোয়েন্সিতে, এই প্রযুক্তিটি সক্রিয় করার ফলে বৃদ্ধি আপনাকে প্রায় 13% সময় বাঁচাতে দেয়, যা বড় ফাইলগুলি প্রক্রিয়া করার সময় বেশ লক্ষণীয় হবে। কিন্তু তারপরও ফলাফল আশানুরূপ চিত্তাকর্ষক নয়।
TMPGEnc প্রোগ্রামে একটি CPU এবং CUDA লোড নির্দেশক রয়েছে; এই পরীক্ষা কনফিগারেশনে, এটি CPU লোড প্রায় 20% এবং গ্রাফিক্স কোর অবশিষ্ট 80% এ দেখিয়েছে। ফলস্বরূপ, CUDA ছাড়া রূপান্তর করার সময় আমাদের কাছে একই 100% আছে, এবং সময়ের পার্থক্য নাও থাকতে পারে (তবে এটি এখনও বিদ্যমান)। 256 MB এর ছোট মেমরি ক্ষমতাও একটি সীমাবদ্ধ কারণ নয়। RivaTuner এর রিডিং দ্বারা বিচার করে, অপারেশন চলাকালীন 154 MB এর বেশি ভিডিও মেমরি ব্যবহার করা হয়নি।
উপসংহার
TMPGEnc প্রোগ্রামটি তাদের মধ্যে একটি যা জনসাধারণের কাছে CUDA প্রযুক্তির পরিচয় দেয়। এই প্রোগ্রামে জিপিইউ ব্যবহার করা আপনাকে ভিডিও প্রক্রিয়াকরণ প্রক্রিয়াকে গতিশীল করতে এবং কেন্দ্রীয় প্রসেসরকে উল্লেখযোগ্যভাবে উপশম করতে দেয়, যা ব্যবহারকারীকে একই সময়ে স্বাচ্ছন্দ্যে অন্যান্য কাজ করতে দেয়। আমাদের নির্দিষ্ট উদাহরণে, GeForce 8800GT 256MB ভিডিও কার্ডটি একটি ওভারক্লকড পেন্টিয়াম ডুয়াল-কোর E5200 প্রসেসরের উপর ভিত্তি করে ভিডিও রূপান্তর করার সময় টাইমিং পারফরম্যান্সের সামান্য উন্নতি করেছে৷ তবে এটি স্পষ্টভাবে দৃশ্যমান যে ফ্রিকোয়েন্সি হ্রাসের সাথে সাথে CUDA সক্রিয় করার লাভ বৃদ্ধি পায়; দুর্বল প্রসেসরগুলিতে, এর ব্যবহার থেকে লাভ অনেক বেশি হবে। এই নির্ভরতার পটভূমিতে, এটি অনুমান করা বেশ যৌক্তিক যে এমনকি লোড বৃদ্ধির সাথেও (উদাহরণস্বরূপ, একটি খুব বড় সংখ্যক অতিরিক্ত ভিডিও ফিল্টার ব্যবহার), CUDA সহ একটি সিস্টেমের ফলাফলগুলি আরও বেশি দ্বারা আলাদা করা হবে। এনকোডিং প্রক্রিয়ায় ব্যয় করা সময়ের পার্থক্যের উল্লেখযোগ্য ডেল্টা। এছাড়াও, ভুলে যাবেন না যে G92 এই মুহূর্তে সবচেয়ে শক্তিশালী চিপ নয়, এবং আরও আধুনিক ভিডিও কার্ডগুলি এই ধরনের অ্যাপ্লিকেশনগুলিতে উল্লেখযোগ্যভাবে উচ্চতর কর্মক্ষমতা প্রদান করবে। যাইহোক, অ্যাপ্লিকেশনটি চলাকালীন, GPU সম্পূর্ণরূপে লোড হয় না এবং সম্ভবত, লোড বিতরণ প্রতিটি কনফিগারেশনের উপর আলাদাভাবে নির্ভর করে, যেমন প্রসেসর/ভিডিও কার্ডের সংমিশ্রণের উপর, যা শেষ পর্যন্ত শতাংশ হিসাবে একটি বড় (বা ছোট) বৃদ্ধি দিতে পারে। CUDA সক্রিয়করণ. যাই হোক না কেন, যারা প্রচুর পরিমাণে ভিডিও ডেটা নিয়ে কাজ করেন, এই প্রযুক্তিটি এখনও তাদের সময়কে উল্লেখযোগ্যভাবে বাঁচাতে দেবে।
সত্য, CUDA এখনও ব্যাপক জনপ্রিয়তা অর্জন করেনি; এই প্রযুক্তির সাথে কাজ করা সফ্টওয়্যারের গুণমানের উন্নতি প্রয়োজন। TMPGEnc 4.0 XPress প্রোগ্রামে আমরা পর্যালোচনা করেছি, এই প্রযুক্তি সবসময় কাজ করে না। একই ভিডিওটি বেশ কয়েকবার পুনরায় এনকোড করা যেতে পারে, এবং তারপরে হঠাৎ করে, পরের বার এটি চালু হওয়ার পরে, CUDA লোড ইতিমধ্যে 0% ছিল। এবং এই ঘটনাটি সম্পূর্ণ ভিন্ন অপারেটিং সিস্টেমে সম্পূর্ণরূপে এলোমেলো ছিল। এছাড়াও, XviD ফরম্যাটে এনকোড করার সময় প্রশ্নে থাকা প্রোগ্রামটি CUDA ব্যবহার করতে অস্বীকার করেছিল, কিন্তু জনপ্রিয় DivX কোডেকের সাথে কোন সমস্যা ছিল না।
ফলস্বরূপ, এখন পর্যন্ত CUDA প্রযুক্তি শুধুমাত্র নির্দিষ্ট কিছু কাজে ব্যক্তিগত কম্পিউটারের কর্মক্ষমতা উল্লেখযোগ্যভাবে বৃদ্ধি করতে পারে। কিন্তু এই ধরনের প্রযুক্তির প্রয়োগের সুযোগ প্রসারিত হবে, এবং প্রচলিত প্রসেসরগুলিতে কোরের সংখ্যা বৃদ্ধির প্রক্রিয়া আধুনিক সফ্টওয়্যার অ্যাপ্লিকেশনগুলিতে সমান্তরাল মাল্টি-থ্রেডেড কম্পিউটিংয়ের চাহিদা বৃদ্ধির ইঙ্গিত দেয়। এটি কিছুর জন্য নয় যে সম্প্রতি সমস্ত শিল্প নেতারা একটি ইউনিফাইড আর্কিটেকচারের মধ্যে সিপিইউ এবং জিপিইউকে একত্রিত করার ধারণা নিয়ে আচ্ছন্ন হয়ে পড়েছেন (শুধুমাত্র বহু-বিজ্ঞাপিত এএমডি ফিউশন মনে রাখবেন)। সম্ভবত CUDA এই একীকরণ প্রক্রিয়ার অন্যতম পর্যায়।
আমরা পরীক্ষার সরঞ্জাম সরবরাহ করার জন্য নিম্নলিখিত সংস্থাগুলিকে ধন্যবাদ জানাই:
- নিম্ন-স্তরের সফ্টওয়্যার ইন্টারফেসের একটি সেট ( API) গেম এবং অন্যান্য উচ্চ-পারফরম্যান্স মাল্টিমিডিয়া অ্যাপ্লিকেশন তৈরির জন্য। উচ্চ কর্মক্ষমতা সমর্থন অন্তর্ভুক্ত 2D- এবং 3D-গ্রাফিক্স, সাউন্ড এবং ইনপুট ডিভাইস।
ডাইরেক্ট 3D (D3D) - ত্রিমাত্রিক প্রদর্শনের জন্য ইন্টারফেস আদিম(জ্যামিতিক বডি)। অন্তর্ভুক্ত .
ওপেনজিএল(ইংরেজী থেকে গ্রাফিক্স লাইব্রেরি খুলুন, আক্ষরিক অর্থে - ওপেন গ্রাফিক্স লাইব্রেরি) হল একটি স্পেসিফিকেশন যা দ্বি-মাত্রিক এবং ত্রি-মাত্রিক কম্পিউটার গ্রাফিক্স ব্যবহার করে অ্যাপ্লিকেশন লেখার জন্য একটি প্রোগ্রামিং ভাষা-স্বাধীন ক্রস-প্ল্যাটফর্ম প্রোগ্রামিং ইন্টারফেসকে সংজ্ঞায়িত করে। সাধারণ আদিম থেকে জটিল 3D দৃশ্য আঁকার জন্য 250 টিরও বেশি ফাংশন অন্তর্ভুক্ত করে। বৈজ্ঞানিক গবেষণায় ভিডিও গেম, ভার্চুয়াল বাস্তবতা এবং ভিজ্যুয়ালাইজেশন তৈরি করতে ব্যবহৃত হয়। প্ল্যাটফর্মে উইন্ডোজসঙ্গে প্রতিদ্বন্দ্বিতা করে .
ওপেনসিএল(ইংরেজী থেকে কম্পিউটিং ভাষা খুলুন, আক্ষরিক অর্থে - গণনার একটি খোলা ভাষা) - কাঠামো(সফ্টওয়্যার সিস্টেম ফ্রেমওয়ার্ক) বিভিন্ন গ্রাফিক্সে সমান্তরাল কম্পিউটিং সম্পর্কিত কম্পিউটার প্রোগ্রাম লেখার জন্য ( জিপিইউ) এবং ( ) কাঠামোর দিকে ওপেনসিএলএকটি প্রোগ্রামিং ভাষা এবং অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস অন্তর্ভুক্ত ( API). ওপেনসিএলনির্দেশের স্তরে এবং ডেটা স্তরে সমান্তরালতা প্রদান করে এবং কৌশলটির বাস্তবায়ন জিপিজিপিইউ.
জিপিজিপিইউ(ইংরেজি থেকে সংক্ষিপ্ত) General-P urpose G raphics P rocessing U nits, আক্ষরিক অর্থে - জিপিইউসাধারণ উদ্দেশ্য) হল একটি গ্রাফিক্স প্রসেসিং ইউনিট (GPU) বা ভিডিও কার্ড ব্যবহার করার একটি কৌশল যা সাধারণভাবে কম্পিউটার দ্বারা সঞ্চালিত হয়।
শেডর(ইংরেজি) shader) – সংশ্লেষিত চিত্রগুলিতে ছায়া তৈরির জন্য একটি প্রোগ্রাম, একটি বস্তু বা চিত্রের চূড়ান্ত পরামিতি নির্ধারণ করতে ত্রিমাত্রিক গ্রাফিক্সে ব্যবহৃত হয়। সাধারণত আলো শোষণ এবং বিচ্ছুরণ, টেক্সচার ম্যাপিং, প্রতিফলন এবং প্রতিসরণ, ছায়া, পৃষ্ঠ স্থানচ্যুতি এবং পোস্ট-প্রসেসিং প্রভাবগুলির নির্বিচারে জটিল বর্ণনা অন্তর্ভুক্ত করে। জটিল পৃষ্ঠতলগুলি সাধারণ জ্যামিতিক আকার ব্যবহার করে কল্পনা করা যেতে পারে।
রেন্ডারিং(ইংরেজি) রেন্ডারিং) – ভিজ্যুয়ালাইজেশন, কম্পিউটার গ্রাফিক্সে, সফ্টওয়্যার ব্যবহার করে একটি মডেল থেকে একটি চিত্র প্রাপ্ত করার প্রক্রিয়া।
SDK(ইংরেজি থেকে সংক্ষিপ্ত) সফটওয়্যার ডেভেলপমেন্ট কিট) – সফ্টওয়্যার বিকাশের সরঞ্জামগুলির একটি সেট।
সিপিইউ(ইংরেজি থেকে সংক্ষিপ্ত) কেন্দ্রীয় প্রক্রিয়াকরণ ইউনিট, আক্ষরিক অর্থে - কেন্দ্রীয়/প্রধান/প্রধান কম্পিউটিং ডিভাইস) - কেন্দ্রীয় (মাইক্রো); একটি ডিভাইস যা মেশিনের নির্দেশাবলী কার্যকর করে; কম্পিউটেশনাল ক্রিয়াকলাপ (অপারেটিং সিস্টেম এবং অ্যাপ্লিকেশন সফ্টওয়্যার দ্বারা নির্দিষ্ট) এবং সমস্ত ডিভাইসের অপারেশন সমন্বয় করার জন্য দায়ী হার্ডওয়্যারের একটি অংশ।
জিপিইউ(ইংরেজি থেকে সংক্ষিপ্ত) গ্রাফিক প্রসেসিং ইউনিট, আক্ষরিক অর্থে – গ্রাফিক কম্পিউটিং ডিভাইস) – গ্রাফিক প্রসেসর; একটি পৃথক ডিভাইস বা গেম কনসোল যা গ্রাফিক রেন্ডারিং (ভিজ্যুয়ালাইজেশন) করে। আধুনিক জিপিইউগুলি বাস্তবসম্মত পদ্ধতিতে কম্পিউটার গ্রাফিক্স প্রক্রিয়াকরণ এবং প্রদর্শনে অত্যন্ত দক্ষ। আধুনিক ভিডিও অ্যাডাপ্টারগুলিতে গ্রাফিক্স প্রসেসর একটি 3D গ্রাফিক্স অ্যাক্সিলারেটর হিসাবে ব্যবহৃত হয়, তবে কিছু ক্ষেত্রে এটি গণনার জন্যও ব্যবহার করা যেতে পারে ( জিপিজিপিইউ).
সমস্যা সিপিইউ
দীর্ঘ সময়ের জন্য, একটি চিপে ট্রানজিস্টরের সংখ্যা একযোগে বৃদ্ধির সাথে ঘড়ির ফ্রিকোয়েন্সি (প্রায় 80% কর্মক্ষমতা ঘড়ির ফ্রিকোয়েন্সি দ্বারা নির্ধারিত হয়েছিল) ধারাবাহিকভাবে বৃদ্ধির কারণে প্রথাগত পারফরম্যান্সের বৃদ্ধি ঘটে। . যাইহোক, ঘড়ির কম্পাঙ্কের আরও বৃদ্ধি (3.8 GHz-এর বেশি ঘড়ির ফ্রিকোয়েন্সিতে, চিপগুলি কেবল অতিরিক্ত গরম হয়!) অনেকগুলি মৌলিক শারীরিক বাধার সম্মুখীন হয় (যেহেতু প্রযুক্তিগত প্রক্রিয়াটি প্রায় একটি পরমাণুর আকারের কাছাকাছি চলে এসেছে: , এবং একটি সিলিকন পরমাণুর আকার প্রায় 0.543 এনএম):
প্রথমত, স্ফটিক আকার হ্রাস এবং ঘড়ি ফ্রিকোয়েন্সি বৃদ্ধি, ট্রানজিস্টর ফুটো বর্তমান বৃদ্ধি. এটি শক্তি খরচ বৃদ্ধি এবং তাপ নির্গমন বৃদ্ধি বাড়ে;
দ্বিতীয়ত, উচ্চ ঘড়ির গতির সুবিধাগুলি আংশিকভাবে মেমরি অ্যাক্সেস লেটেন্সি দ্বারা অস্বীকার করা হয়, কারণ মেমরি অ্যাক্সেসের সময় ক্রমবর্ধমান ঘড়ির গতির সাথে তাল মিলিয়ে যায় না;
তৃতীয়ত, কিছু অ্যাপ্লিকেশনের জন্য, প্রথাগত সিরিয়াল আর্কিটেকচারগুলি অকার্যকর হয়ে পড়ে কারণ তথাকথিত "ভন নিউম্যান বটলনেক" এর কারণে ঘড়ির গতি বৃদ্ধি পায়, যা অনুক্রমিক গণনা প্রবাহের ফলে কর্মক্ষমতা সীমাবদ্ধতা। একই সময়ে, প্রতিরোধী-ক্যাপাসিটিভ সিগন্যাল ট্রান্সমিশন বিলম্ব বৃদ্ধি পায়, যা ঘড়ির ফ্রিকোয়েন্সি বৃদ্ধির সাথে যুক্ত একটি অতিরিক্ত বাধা।
উন্নয়ন জিপিইউ
এর সমান্তরালে, উন্নয়ন ছিল (এবং আছে!) জিপিইউ:
…
নভেম্বর 2008 - ইন্টেল 4-কোরের একটি লাইন চালু করেছে ইন্টেল কোর i7, যা একটি নতুন প্রজন্মের মাইক্রোআর্কিটেকচারের উপর ভিত্তি করে তৈরি নেহালেম. প্রসেসরগুলি 2.6-3.2 GHz এর ক্লক ফ্রিকোয়েন্সিতে কাজ করে। একটি 45nm প্রক্রিয়া প্রযুক্তি ব্যবহার করে তৈরি।
ডিসেম্বর 2008 - 4-কোর ডেলিভারি শুরু হয়েছে এএমডি ফেনোম II 940(সাঙ্কেতিক নাম - দেনব) 3 GHz ফ্রিকোয়েন্সিতে কাজ করে, একটি 45-nm প্রক্রিয়া প্রযুক্তি ব্যবহার করে উত্পাদিত হয়।
…
মে 2009 - কোম্পানি এএমডি GPU সংস্করণ চালু করা হয়েছে ATI Radeon HD 4890মূল ঘড়ির গতি 850 MHz থেকে 1 GHz-এ বেড়েছে। এই প্রথম গ্রাফিকপ্রসেসর 1 GHz এ চলছে। চিপের কম্পিউটিং শক্তি, ফ্রিকোয়েন্সি বৃদ্ধির জন্য ধন্যবাদ, 1.36 থেকে 1.6 টেরাফ্লপ পর্যন্ত বৃদ্ধি পেয়েছে। প্রসেসরটিতে 800 (!) কম্পিউটিং কোর রয়েছে এবং ভিডিও মেমরি সমর্থন করে GDDR5, ডাইরেক্টএক্স 10.1, এটিআই ক্রসফায়ারএক্সএবং আধুনিক ভিডিও কার্ড মডেলের অন্তর্নিহিত অন্যান্য সমস্ত প্রযুক্তি। চিপটি 55 এনএম প্রযুক্তির ভিত্তিতে তৈরি করা হয়েছে।
প্রধান পার্থক্য জিপিইউ
স্বাতন্ত্র্যসূচক বৈশিষ্ট্য জিপিইউ(সাথে তুলনা করা হয় ) হল:
- একটি আর্কিটেকচার যা সর্বাধিক লক্ষ্য করে টেক্সচার এবং জটিল গ্রাফিক বস্তুর গণনার গতি বাড়ানোর লক্ষ্যে;
- পিক পাওয়ার সাধারণত জিপিইউতার চেয়ে অনেক বেশি ;
- একটি বিশেষ পরিবাহক আর্কিটেকচারের জন্য ধন্যবাদ, জিপিইউতুলনায় গ্রাফিক তথ্য প্রক্রিয়াকরণে অনেক বেশি দক্ষ।
"শৈলীর সংকট"
জন্য "জেনার সংকট" 2005 এর মধ্যে পরিপক্ক - তখনই তারা উপস্থিত হয়েছিল। কিন্তু, প্রযুক্তির উন্নয়ন সত্ত্বেও, গতানুগতিক উত্পাদনশীলতা বৃদ্ধি লক্ষণীয়ভাবে হ্রাস পেয়েছে। একই সময়ে পারফরম্যান্স জিপিইউবাড়তে থাকে। সুতরাং, 2003 সালের মধ্যে, এই বিপ্লবী ধারণাটি স্ফটিক হয়ে গেল - আপনার প্রয়োজনের জন্য গ্রাফিক্সের কম্পিউটিং শক্তি ব্যবহার করুন. GPU গুলি "নন-গ্রাফিক্যাল" কম্পিউটিং (পদার্থবিদ্যা সিমুলেশন, সিগন্যাল প্রসেসিং, কম্পিউটেশনাল ম্যাথমেটিক্স/জ্যামিতি, ডাটাবেস অপারেশন, কম্পিউটেশনাল বায়োলজি, কম্পিউটেশনাল ইকোনমিক্স, কম্পিউটার ভিশন, ইত্যাদি) জন্য ক্রমবর্ধমানভাবে ব্যবহৃত হয়েছে।
প্রধান সমস্যা ছিল কোন স্ট্যান্ডার্ড প্রোগ্রামিং ইন্টারফেস ছিল না জিপিইউ. ডেভেলপাররা ব্যবহার করেছে ওপেনজিএলবা ডাইরেক্ট 3D, কিন্তু এটা খুব সুবিধাজনক ছিল. কর্পোরেশন এনভিডিয়া(গ্রাফিক্স, মিডিয়া এবং কমিউনিকেশন প্রসেসর, সেইসাথে ওয়্যারলেস মিডিয়া প্রসেসরের বৃহত্তম নির্মাতাদের মধ্যে একটি; 1993 সালে প্রতিষ্ঠিত) একটি ইউনিফাইড এবং সুবিধাজনক স্ট্যান্ডার্ড তৈরি করা শুরু করে - এবং প্রযুক্তি চালু করে চুদা.
কিভাবে এটা শুরু
2006 – এনভিডিয়াপ্রদর্শন করে CUDA™; কম্পিউটিং একটি বিপ্লবের সূচনা জিপিইউ.
2007 - এনভিডিয়াস্থাপত্য প্রকাশ করে চুদা(মূল সংস্করণ CUDA SDK 15 ফেব্রুয়ারি, 2007 এ জমা দেওয়া হয়েছিল); ম্যাগাজিন থেকে "সেরা নতুন পণ্য" মনোনয়ন জনপ্রিয় বিজ্ঞানএবং প্রকাশনা থেকে "পাঠকদের পছন্দ" এইচপিসিওয়্যার.
2008 - প্রযুক্তি এনভিডিয়া চুদাথেকে "প্রযুক্তিগত শ্রেষ্ঠত্ব" বিভাগে জিতেছে পিসি ম্যাগাজিন.
কি হয়ছে চুদা
চুদা(ইংরেজি থেকে সংক্ষিপ্ত) গণনা ইউনিফাইড ডিভাইস আর্কিটেকচার, আক্ষরিক অর্থে - ডিভাইসগুলির ইউনিফাইড কম্পিউটিং আর্কিটেকচার) - আর্কিটেকচার (সফ্টওয়্যার এবং হার্ডওয়্যারের একটি সেট) যা আপনাকে উত্পাদন করতে দেয় জিপিইউসাধারণ উদ্দেশ্য গণনা, যখন জিপিইউআসলে একটি শক্তিশালী কপ্রসেসর হিসাবে কাজ করে।
প্রযুক্তি NVIDIA CUDA™একটি প্রোগ্রামিং ভাষার একমাত্র উন্নয়ন পরিবেশ গ, যা ডেভেলপারদের এমন সফ্টওয়্যার তৈরি করতে দেয় যা কম সময়ে জটিল কম্পিউটিং সমস্যার সমাধান করে, GPU-এর প্রক্রিয়াকরণ ক্ষমতার জন্য ধন্যবাদ। লক্ষ লক্ষ মানুষ ইতিমধ্যে বিশ্বে কাজ করছে জিপিইউসমর্থন সঙ্গে চুদা, এবং হাজার হাজার প্রোগ্রামার ইতিমধ্যেই (ফ্রি!) টুল ব্যবহার করছে চুদাঅ্যাপ্লিকেশনগুলিকে ত্বরান্বিত করতে এবং সবচেয়ে জটিল, সম্পদ-নিবিড় কাজগুলি সমাধান করতে - ভিডিও এবং অডিও এনকোডিং থেকে তেল এবং গ্যাস অনুসন্ধান, পণ্য মডেলিং, মেডিকেল ইমেজিং এবং বৈজ্ঞানিক গবেষণা।
চুদাবিকাশকারীকে তার নিজস্ব বিবেচনার ভিত্তিতে, গ্রাফিক্স এক্সিলারেটরের নির্দেশাবলীর সেটে অ্যাক্সেস সংগঠিত করার এবং এর মেমরি পরিচালনা করার এবং এটিতে জটিল সমান্তরাল গণনা সংগঠিত করার সুযোগ দেয়। গ্রাফিক্স অ্যাক্সিলারেটর সমর্থন চুদাএকটি শক্তিশালী প্রোগ্রামেবল ওপেন আর্কিটেকচার হয়ে ওঠে, যা আজকের মতো। এই সবই ডেভেলপারকে হার্ডওয়্যারের নিম্ন-স্তরের, বিতরণ করা এবং উচ্চ-গতির অ্যাক্সেস প্রদান করে, চুদাকম্পাইলার, ডিবাগার, গাণিতিক লাইব্রেরি এবং সফ্টওয়্যার প্ল্যাটফর্মের মতো গুরুতর উচ্চ-স্তরের সরঞ্জাম তৈরির জন্য একটি প্রয়োজনীয় ভিত্তি।
ইউরালস্কি, নেতৃস্থানীয় প্রযুক্তি বিশেষজ্ঞ এনভিডিয়া, তুলনা জিপিইউএবং , এটি বলেছেন: " - এটি একটি SUV. তিনি সর্বদা এবং সর্বত্র গাড়ি চালান, তবে খুব দ্রুত নয়। ক জিপিইউ- এটি একটি স্পোর্টস কার। একটি খারাপ রাস্তায়, এটি কেবল কোথাও যাবে না, তবে এটিকে একটি ভাল পৃষ্ঠ দেবে, এবং এটি তার সমস্ত গতি দেখাবে, যা একটি SUV কখনও স্বপ্নেও ভাবেনি!..."
প্রযুক্তির ক্ষমতা চুদা