CUDA and the rise of NVIDIA - editorial illustration

জেনসেন হুয়াং, CUDA এবং NVIDIA-এর উত্থান

ভূমিকা

১৯৯৩ সালে যখন জেনসেন হুয়াং NVIDIA প্রতিষ্ঠায় সহযোগী হন, তখন লক্ষ্য ছিল কম্পিউটার গেম ও মাল্টিমিডিয়ায় থ্রিডি গ্রাফিক্স আনা। আজ, একই কোম্পানির প্রসেসর ব্যবহৃত হচ্ছে আর্টিফিশিয়াল ইন্টেলিজেন্স মডেল প্রশিক্ষণ ও চালানোর জন্য। এই পরিবর্তন বুঝতে হলে হুয়াংয়ের প্রকৌশল পটভূমি এবং NVIDIA-এর তৈরি সফটওয়্যার প্ল্যাটফর্ম CUDA থেকে শুরু করা ভালো। [১] [1]

১. হুয়াংয়ের প্রকৌশল ক্যারিয়ার

তাইওয়ানে জন্ম নেওয়া হুয়াং ১৯৮৪ সালে অরেগন স্টেট ইউনিভার্সিটি থেকে ইলেকট্রিক্যাল ইঞ্জিনিয়ারিংয়ে স্নাতক ডিগ্রি অর্জন করেন। তিনি ১৯৮৪ থেকে ১৯৮৫ সাল পর্যন্ত AMD-তে মাইক্রোপ্রসেসর ডিজাইনার হিসেবে কাজ করেন, এরপর ১৯৮৫ থেকে ১৯৯৩ সাল পর্যন্ত LSI Logic-এ বেশ কয়েকটি পদে ছিলেন। তিনি Coreware-এর পরিচালক হন, যে বিভাগটি কম্পিউটার সিস্টেমের একাধিক উপাদান একটি একক চিপে সংহত করার কোম্পানির কৌশলের জন্য দায়ী ছিল। এই সময়ে তিনি ১৯৯২ সালে স্ট্যানফোর্ড ইউনিভার্সিটি থেকে ইলেকট্রিক্যাল ইঞ্জিনিয়ারিংয়ে স্নাতকোত্তর ডিগ্রিও অর্জন করেন। [২] [1]

১৯৯৩ সালের ৫ এপ্রিল হুয়াং ক্রিস মালাকোস্কি ও কার্টিস প্রিমের সঙ্গে NVIDIA প্রতিষ্ঠা করেন। কোম্পানি শুরু থেকেই তিনি প্রেসিডেন্ট, প্রধান নির্বাহী কর্মকর্তা ও বোর্ড সদস্য হিসেবে দায়িত্ব পালন করছেন। ১৯৯৯ সালে NVIDIA প্রাথমিক গণপ্রস্তাব (IPO) সম্পন্ন করে। একই বছর এটি GeForce 256 চালু করে, যা কোম্পানির গ্রাফিক্স প্রসেসিং ইউনিট (GPU) ইতিহাসের একটি মাইলফলক। [১] [1]

২. CUDA কী?

NVIDIA ২০০৬ সালে CUDA চালু করে একটি সফটওয়্যার প্ল্যাটফর্ম ও প্রোগ্রামিং মডেল হিসেবে, যা তার GPU-তে অনেক গণনা সমান্তরালে সম্পাদনের জন্য তৈরি। GPU হলো সেই হার্ডওয়্যার যা গণনা করে। CUDA সেই প্রোগ্রামিং টুল সরবরাহ করে যা ডেভেলপাররা ওই হার্ডওয়্যারে তাদের গণনা চালাতে ব্যবহার করেন। এতে গ্রাফিক্সের জন্য তৈরি GPU বৈজ্ঞানিক গবেষণা, হাই-পারফরম্যান্স কম্পিউটিং ও আর্টিফিশিয়াল ইন্টেলিজেন্সের প্রয়োগের জন্য উন্মুক্ত হয়। [১] [1]

কল্পনা করুন আপনি দশ লক্ষ পিক্সেলের একটি ছবি উজ্জ্বল করছেন। একটি পিক্সেলের গণনা অন্যগুলোর থেকে স্বাধীনভাবে এগোতে পারে। একটি CUDA প্রোগ্রাম সেই কাজকে ছোট ছোট গণনায় ভাগ করে GPU-তে চালাতে পারে। GPU-তে চলা একটি ফাংশনকে বলা হয় কার্নেল। অনেক থ্রেড এটি সমান্তরালে চালায়, প্রতিটি তার নির্ধারিত অংশের ডেটা নিয়ে কাজ করে। কাজকে সমান্তরালে চালানো যায় এমন অংশে ভাগ করার একই নীতি বড় ম্যাট্রিক্স গুণনের মতো AI গণনায়ও প্রযোজ্য। [৩] [1]

৩. CUDA কীভাবে AI শিল্পকে সাহায্য করেছে

একটি নিউরাল নেটওয়ার্ক প্রশিক্ষণের সময় মডেলটি প্রথমে একটি পূর্বাভাস দেয়। প্রশিক্ষণ প্রক্রিয়া ত্রুটি পরিমাপ করে এবং মডেলের প্যারামিটার হালনাগাদ করে। এটি এই প্রক্রিয়া বারবার পুনরাবৃত্তি করে। GPU ম্যাট্রিক্স গুণনের মতো কাজ ত্বরান্বিত করে, গবেষকদের আরও বেশি পরীক্ষা চালানোর সময় দেয় এবং বড় মডেল প্রশিক্ষণকে ব্যবহারিক করে তোলে। প্রশিক্ষণের পরেও GPU ব্যবহৃত হয়, ইনফারেন্সের সময়, যখন কোনো মডেল, যেমন ভাষা মডেল, ব্যবহারকারীর জন্য উত্তর তৈরি করে। [৪] [1]

AlexNet ২০১২ সালে এর ব্যবহারিক প্রমাণ দেয়। NVIDIA GPU-তে প্রশিক্ষিত হয়ে এটি ImageNet ইমেজ ক্লাসিফিকেশন প্রতিযোগিতা জেতে। এর পারফরম্যান্স দেখিয়েছে কীভাবে কম্পিউটার গেমে ব্যবহৃত গ্রাফিক্স প্রসেসর ছবি চেনার মডেলও প্রশিক্ষণ দিতে পারে। [১] [1]

৪. CUDA কীভাবে NVIDIA-কে স্থায়ী সুবিধা দিয়েছে

NVIDIA ডেভেলপারদের প্রায়ই প্রয়োজন হয় এমন গণনার জন্য অপ্টিমাইজড লাইব্রেরি ও টুল তৈরি করেছে। cuBLAS ম্যাট্রিক্স অপারেশন ত্বরান্বিত করে, cuDNN সাধারণ নিউরাল নেটওয়ার্ক অপারেশন সমর্থন করে, NCCL একাধিক GPU জুড়ে যোগাযোগ পরিচালনা করে, এবং TensorRT প্রশিক্ষিত মডেল দ্রুত চালাতে সাহায্য করে। PyTorch-এর মতো ফ্রেমওয়ার্ক CUDA সমর্থন করে, তাই ডেভেলপাররা প্রতিটি GPU অপারেশন শুরু থেকে না লিখেই এই সুবিধাগুলো ব্যবহার করতে পারেন। [৫] [1]

উপসংহার

এই সফটওয়্যার ইকোসিস্টেম NVIDIA-এর হার্ডওয়্যার ব্যবসাকে শক্তিশালী করেছে। একটি দল পরিচিত সফটওয়্যার ও টুল ব্যবহার অব্যাহত রেখে ছোট একটি পরীক্ষা থেকে অনেক GPU-তে চলা সিস্টেমে যেতে পারে। হার্ডওয়্যার বদলালে দলকে হয়তো CUDA নির্ভরতা পর্যালোচনা করতে, সফটওয়্যারের কিছু অংশ মানিয়ে নিতে এবং পারফরম্যান্স আবার পরীক্ষা করতে হতে পারে। বছরের পর বছর হার্ডওয়্যারের পাশাপাশি সফটওয়্যারেও বিনিয়োগ করে, AI কম্পিউটিংয়ের চাহিদা বাড়লে NVIDIA-এর কাছে সেই ডেভেলপারদের জন্য টুল প্রস্তুত ছিল যারা সেগুলো ব্যবহার করতে জানত। [১] [1]

তথ্যসূত্র

  1. https://www.nvidia.com/en-us/about-nvidia/corporate-timeline/
  2. https://s201.q4cdn.com/141608511/files/doc_financials/annual/2013/NVDA_2013AR_Proxy_10K-FINAL.pdf
  3. https://docs.nvidia.com/cuda/cuda-programming-guide/02-basics/writing-cuda-kernels.html
  4. https://docs.nvidia.com/cuda/cuda-programming-guide/index.html
  5. https://developer.nvidia.com/machine-learning

জেনসেন হুয়াং, CUDA এবং NVIDIA-এর উত্থান নিয়ে প্রশ্ন

CUDA কী এবং NVIDIA কেন এটি তৈরি করেছিল?

CUDA হলো একটি সফটওয়্যার প্ল্যাটফর্ম ও প্রোগ্রামিং মডেল যা NVIDIA ২০০৬ সালে তার GPU-তে অনেক গণনা সমান্তরালে চালানোর জন্য চালু করেছিল। GPU হলো হার্ডওয়্যার; CUDA প্রোগ্রামিং টুল সরবরাহ করে, যা গ্রাফিক্স হার্ডওয়্যারকে বৈজ্ঞানিক গবেষণা, হাই-পারফরম্যান্স কম্পিউটিং ও AI-এর জন্য উন্মুক্ত করেছে।

CUDA কীভাবে AI শিল্পকে সাহায্য করেছে?

নিউরাল নেটওয়ার্ক প্রশিক্ষণ মানে পূর্বাভাস, ত্রুটি পরিমাপ ও প্যারামিটার হালনাগাদ বারবার করা। GPU ম্যাট্রিক্স গুণনের মতো কাজ ত্বরান্বিত করে, গবেষকদের আরও পরীক্ষা চালাতে ও বড় মডেল প্রশিক্ষণে সক্ষম করে। NVIDIA GPU-তে প্রশিক্ষিত AlexNet ২০১২ সালের ImageNet প্রতিযোগিতা জিতে এটি প্রমাণ করেছে।

কেন CUDA NVIDIA-কে স্থায়ী সুবিধা দেয়?

NVIDIA এমন অপ্টিমাইজড লাইব্রেরি তৈরি করেছে যা ডেভেলপারদের প্রায়ই দরকার হয় – ম্যাট্রিক্স অপারেশনের জন্য cuBLAS, নিউরাল নেটওয়ার্ক অপারেশনের জন্য cuDNN, মাল্টি-GPU যোগাযোগের জন্য NCCL এবং দ্রুত ইনফারেন্সের জন্য TensorRT – এবং PyTorch-এর মতো ফ্রেমওয়ার্ক CUDA সমর্থন করে, তাই দলগুলো সফটওয়্যার পুনর্লিখন ছাড়াই ছোট পরীক্ষা থেকে অনেক GPU-তে বিস্তার করতে পারে।

Powered By K7