NVIDIA CCCL 3.1 GPU কম্পিউটিংয়ের জন্য ফ্লোটিং-পয়েন্ট ডিটারমিনিজম নিয়ন্ত্রণ যুক্ত করেছে
Caroline Bishop মার্চ ০৫, ২০২৬ ১৭:৪৬
NVIDIA-র CCCL 3.1 প্যারালাল রিডাকশনের জন্য তিনটি ডিটারমিনিজম স্তর প্রবর্তন করেছে, যা ডেভেলপারদের GPU কম্পিউটেশনে পুনরুৎপাদনযোগ্যতার জন্য পারফরম্যান্স ট্রেড করতে দেয়।
NVIDIA CUDA Core Compute Libraries (CCCL) 3.1-এ ডিটারমিনিজম নিয়ন্ত্রণ চালু করেছে, যা প্যারালাল GPU কম্পিউটিংয়ে একটি দীর্ঘস্থায়ী সমস্যার সমাধান করে: একাধিক রান এবং বিভিন্ন হার্ডওয়্যার জুড়ে ফ্লোটিং-পয়েন্ট অপারেশন থেকে অভিন্ন ফলাফল পাওয়া।
আপডেটটি CUB-এর নতুন সিঙ্গেল-ফেজ API-এর মাধ্যমে তিনটি কনফিগারযোগ্য ডিটারমিনিজম স্তর প্রবর্তন করে, যা ডেভেলপারদের পুনরুৎপাদনযোগ্যতা-বনাম-পারফরম্যান্স ট্রেডঅফের উপর সুস্পষ্ট নিয়ন্ত্রণ দেয় যা বছরের পর বছর ধরে GPU অ্যাপ্লিকেশনগুলিকে জর্জরিত করেছে।
কেন ফ্লোটিং-পয়েন্ট ডিটারমিনিজম গুরুত্বপূর্ণ
সমস্যাটি এখানে: ফ্লোটিং-পয়েন্ট যোগ কঠোরভাবে সহযোগী নয়। সসীম নির্ভুলতায় রাউন্ডিংয়ের কারণে, (a + b) + c সবসময় a + (b + c) এর সমান হয় না। যখন প্যারালাল থ্রেডগুলি অপ্রত্যাশিত ক্রমে মানগুলি একত্রিত করে, তখন আপনি প্রতিটি রানে সামান্য ভিন্ন ফলাফল পান। অনেক অ্যাপ্লিকেশনের জন্য—আর্থিক মডেলিং, বৈজ্ঞানিক সিমুলেশন, ব্লকচেইন কম্পিউটেশন, মেশিন লার্নিং প্রশিক্ষণ—এই অসঙ্গতি প্রকৃত সমস্যা সৃষ্টি করে।
নতুন API ডেভেলপারদের তিনটি মোডের মাধ্যমে ঠিক কতটা পুনরুৎপাদনযোগ্যতা প্রয়োজন তা নির্দিষ্ট করতে দেয়:
নট-গ্যারান্টিড ডিটারমিনিজম কাঁচা গতিকে অগ্রাধিকার দেয়। এটি পারমাণবিক অপারেশন ব্যবহার করে যা থ্রেডগুলি যে ক্রমে চলে সেই ক্রমে কার্যকর হয়, একক কার্নেল লঞ্চে রিডাকশন সম্পন্ন করে। ফলাফল রানগুলির মধ্যে সামান্য পরিবর্তিত হতে পারে, তবে যে অ্যাপ্লিকেশনগুলিতে আনুমানিক উত্তর যথেষ্ট, সেখানে পারফরম্যান্স লাভ যথেষ্ট—বিশেষত ছোট ইনপুট অ্যারেতে যেখানে কার্নেল লঞ্চ ওভারহেড প্রাধান্য পায়।
রান-টু-রান ডিটারমিনিজম (ডিফল্ট) একই ইনপুট, কার্নেল কনফিগারেশন এবং GPU ব্যবহার করার সময় অভিন্ন আউটপুট নিশ্চিত করে। NVIDIA এটি পারমাণবিকের উপর নির্ভর করার পরিবর্তে রিডাকশনগুলিকে নির্দিষ্ট শ্রেণীবদ্ধ ট্রি হিসাবে কাঠামোবদ্ধ করে এটি অর্জন করে। উপাদানগুলি প্রথমে থ্রেডগুলির মধ্যে একত্রিত হয়, তারপর শাফেল নির্দেশাবলীর মাধ্যমে ওয়ার্পগুলি জুড়ে, তারপর শেয়ার্ড মেমরি ব্যবহার করে ব্লকগুলি জুড়ে, একটি দ্বিতীয় কার্নেল চূড়ান্ত ফলাফল একত্রিত করে।
GPU-টু-GPU ডিটারমিনিজম কঠোরতম পুনরুৎপাদনযোগ্যতা প্রদান করে, বিভিন্ন NVIDIA GPU জুড়ে অভিন্ন ফলাফল নিশ্চিত করে। বাস্তবায়নটি একটি রিপ্রোডিউসিবল ফ্লোটিং-পয়েন্ট অ্যাকিউমুলেটর (RFA) ব্যবহার করে যা ইনপুট মানগুলিকে নির্দিষ্ট এক্সপোনেন্ট রেঞ্জে গোষ্ঠীবদ্ধ করে—তিনটি বিনে ডিফল্ট করে—বিভিন্ন মাত্রার সংখ্যা যোগ করার সময় উদ্ভূত অ-সহযোগিতা সমস্যাগুলি মোকাবেলা করতে।
পারফরম্যান্স ট্রেড-অফ
H200 GPU-তে NVIDIA-র বেঞ্চমার্ক পুনরুৎপাদনযোগ্যতার খরচ পরিমাপ করে। GPU-টু-GPU ডিটারমিনিজম শিথিল মোডের তুলনায় বড় সমস্যার আকারের জন্য সম্পাদন সময় ২০% থেকে ৩০% বৃদ্ধি করে। রান-টু-রান ডিটারমিনিজম দুই চরমের মধ্যে বসে।
তিন-বিন RFA কনফিগারেশন NVIDIA যাকে "সর্বোত্তম ডিফল্ট" বলে তা সঠিকতা এবং গতির ভারসাম্য প্রদান করে। আরও বিন সংখ্যাসূচক নির্ভুলতা উন্নত করে কিন্তু মধ্যবর্তী সমষ্টি যোগ করে যা সম্পাদনকে ধীর করে।
বাস্তবায়নের বিবরণ
ডেভেলপাররা cuda::execution::require() এর মাধ্যমে নতুন নিয়ন্ত্রণগুলি অ্যাক্সেস করে, যা রিডাকশন ফাংশনগুলিতে পাস করা একটি এক্সিকিউশন এনভায়রনমেন্ট অবজেক্ট তৈরি করে। সিনট্যাক্সটি সোজা—প্রয়োজনীয়তার উপর নির্ভর করে ডিটারমিনিজম not_guaranteed, run_to_run, বা gpu_to_gpu সেট করুন।
বৈশিষ্ট্যটি শুধুমাত্র CUB-এর সিঙ্গেল-ফেজ API-এর সাথে কাজ করে; পুরানো টু-ফেজ API এক্সিকিউশন এনভায়রনমেন্ট গ্রহণ করে না।
বৃহত্তর প্রভাব
ক্রস-প্ল্যাটফর্ম ফ্লোটিং-পয়েন্ট পুনরুৎপাদনযোগ্যতা উচ্চ-পারফরম্যান্স কম্পিউটিং এবং ব্লকচেইন অ্যাপ্লিকেশনগুলিতে একটি পরিচিত চ্যালেঞ্জ হয়েছে, যেখানে বিভিন্ন কম্পাইলার, অপটিমাইজেশন ফ্ল্যাগ এবং হার্ডওয়্যার আর্কিটেকচার গাণিতিকভাবে অভিন্ন অপারেশন থেকে ভিন্ন ফলাফল তৈরি করতে পারে। বাস্তবায়নের বিবরণ লুকানোর পরিবর্তে ডিটারমিনিজমকে একটি কনফিগারযোগ্য প্যারামিটার হিসাবে স্পষ্টভাবে প্রকাশ করার NVIDIA-র পদ্ধতি একটি বাস্তবসম্মত সমাধানের প্রতিনিধিত্ব করে।
কোম্পানিটি রিডাকশনগুলির বাইরে অতিরিক্ত প্যারালাল প্রিমিটিভগুলিতে ডিটারমিনিজম নিয়ন্ত্রণ প্রসারিত করার পরিকল্পনা করছে। ডেভেলপাররা NVIDIA-র GitHub রিপোজিটরির মাধ্যমে অগ্রগতি ট্র্যাক করতে এবং নির্দিষ্ট অ্যালগরিদম অনুরোধ করতে পারে, যেখানে একটি খোলা ইস্যু সম্প্রসারিত ডিটারমিনিজম রোডম্যাপ ট্র্যাক করে।
চিত্রের উৎস: Shutterstock- nvidia
- gpu computing
- cccl
- floating-point determinism
- cuda



