বাংলা সংবাদ
সর্বশেষ
সাবেক মন্ত্রী রাজিথা সেনারত্নে সতর্ক করেছেন শ্রীলঙ্কা আবারও দেউলিয়া হওয়ার দিকে যাচ্ছেথাম্বুটেগামায় অভাবী পরিবারের বাড়ি নির্মাণে অর্থ দিচ্ছেন প্রাক্তন রাষ্ট্রপতিবিলিয়ন রুপির ক্যান্সার চিকিৎসা মেশিন নিষ্ক্রিয় হওয়ায় রোগীদের আরও বিলম্ব হয়একটি যুগান্তকারী বছর: এক বছরে একজন অভিনেতার জন্য তিনটি 2-বিলিয়ন-ভারতীয়-রুপির ছবিপাকিস্তানে তারবেলা জলবিদ্যুৎ প্রকল্পে রিটেইনিং ওয়াল ধসে পড়েছে বলে জানা গেছেমন্ত্রী বলেছেন আন্তর্জাতিক সম্প্রচারকারীরা শ্রীলঙ্কার পর্যটনের জন্য সহায়তা প্রদান করেনোচ্চিয়াগামা হত্যাকাণ্ডে সহায়তার অভিযোগে একজনকে আটক করেছে পুলিশসিংহরাজায় বন্যপ্রাণী সংগ্রহের অভিযোগে চার চীনা নাগরিককে রিমান্ডে পাঠানো হয়েছে
এআই ও প্রযুক্তি

cuda-convnet-এর ভেতরে: AlexNet-এর দ্বৈত-GPU স্তর ও ImageNet যুগ

উদাহরণ হিসেবে প্রসেসর ডাইয়ের খুঁটিনাটি, নিবন্ধে আলোচিত NVIDIA GPU নয়।
উদাহরণ হিসেবে প্রসেসর ডাইয়ের খুঁটিনাটি, নিবন্ধে আলোচিত NVIDIA GPU নয়।

2012 সালের AlexNet মাইলফলক নিম্নস্তরের GPU প্রকৌশল (cuda-convnet) ও বিভক্ত দ্বৈত-GPU স্থাপত্যের ওপর নির্ভর করেছিল এবং সরাসরি আরও গভীর ও দক্ষ কম্পিউটার ভিশন মডেল তৈরির দ্রুত প্রতিযোগিতা শুরু করেছিল।

1. cuda-convnet ভেতরে কীভাবে কাজ করত

NVIDIA cuDNN তৈরির আগে Alex Krizhevsky প্রাথমিক Fermi-স্থাপত্যের GPU (GTX 580) থেকে সর্বোচ্চ গতি পেতে সরাসরি CUDA C++-এ cuda-convnet লিখেছিলেন। আধুনিক লাইব্রেরি সাধারণত কনভোলিউশনকে বিশাল ম্যাট্রিক্স গুণে (im2col) বিস্তৃত করে, যাতে বিপুল মেমরি লাগে। প্রতিটি GTX 580-তে মাত্র 3 GB VRAM থাকায় Krizhevsky সরাসরি কাজ করা, মেমরি-সাশ্রয়ী GPU রুটিন তৈরি করেছিলেন।

  • ব্যাচ-প্রথম মেমরি বিন্যাস (CHWN)। আধুনিক ফ্রেমওয়ার্কে ডিফল্ট হলো NCHW (ব্যাচ, চ্যানেল, উচ্চতা, প্রস্থ), যা একটি ছবির সব পিক্সেল মেমরিতে পাশাপাশি রাখে। Krizhevsky টেনসরগুলো CHWN ক্রমে রেখেছিলেন, যেখানে ব্যাচের মাত্রা (N) সবার শেষে। একটি warp-এর 32টি GPU থ্রেড যখন ঠিক একই পিক্সেল অবস্থানে 32টি আলাদা ছবি প্রক্রিয়া করত, তখন তাদের মেমরি পাঠ সম্পূর্ণ সংলগ্ন (coalesced) হতো, ফলে VRAM ব্যান্ডউইডথের সর্বোচ্চ ব্যবহার হতো।
  • শেয়ার্ড মেমরি টাইলিং। গ্লোবাল VRAM থেকে পড়তে শত শত ক্লক সাইকেল লাগে, কিন্তু চিপের ভেতরের Shared Memory (GTX 580-এর প্রতিটি Streaming Multiprocessor-এ মাত্র 48 KB) থেকে পড়তে মাত্র কয়েকটি সাইকেল লাগে। থ্রেড ব্লকগুলো ছবির পিক্সেলের ছোট 2D প্যাচ ও ফিল্টারের ওয়েট Shared Memory-তে লোড করত এবং চূড়ান্ত ফল VRAM-এ ফেরত লেখার আগে কয়েক ডজন ডট প্রোডাক্ট গণনা করত।
  • Warp-স্তরে রেজিস্টারের পুনর্ব্যবহার। Krizhevsky প্রতিটি থ্রেড ব্লককে একসঙ্গে একাধিক ফিল্টার জুড়ে আউটপুট পিক্সেলের একটি টাইল গণনার দায়িত্ব দিয়েছিলেন। দ্রুত GPU রেজিস্টারে ফিল্টারের ওয়েট রাখার মাধ্যমে Shared Memory থেকে লোড করা একটি ইমেজ প্যাচ একসঙ্গে অনেক ফিল্টারে পুনর্ব্যবহার করা হতো, যা মেমরি ট্র্যাফিক ব্যাপকভাবে কমাত।

2. AlexNet-এর নির্দিষ্ট স্তর ও দ্বৈত-GPU বিভাজন

AlexNet-এ 8টি শেখা স্তর (5টি কনভোলিউশনাল ও 3টি সম্পূর্ণ সংযুক্ত) ছিল, যেগুলোয় মোট প্রায় 6 কোটি প্যারামিটার ছিল। অ্যাক্টিভেশন, ওয়েট ও গ্রেডিয়েন্টের জন্য প্রয়োজনীয় 3 GB+ VRAM একটি GTX 580-তে না থাকায় Krizhevsky নেটওয়ার্ককে উল্লম্বভাবে দুটি সমান্তরাল ধারায় ভাগ করেছিলেন।

স্তরধরনমোট ফিল্টার / নিউরনপ্রতি-GPU বিভাজনGPU-গুলোর মধ্যে যোগাযোগ
ইনপুটRGB ছবি224 × 224 × 3দুই GPU-তেই কপি করানেই
Conv 111×11 Conv (স্ট্রাইড 4) + MaxPool96টি ফিল্টারপ্রতি GPU-তে 48টি ফিল্টারবিচ্ছিন্ন (সিঙ্ক নেই)
Conv 25×5 Conv + MaxPool256টি ফিল্টারপ্রতি GPU-তে 128টি ফিল্টারবিচ্ছিন্ন (শুধু নিজের GPU-এর Conv 1 পড়ে)
Conv 33×3 Conv384টি ফিল্টারপ্রতি GPU-তে 192টি ফিল্টারপূর্ণ সিঙ্ক (দুই GPU থেকে সব 256টি ম্যাপ পড়ে)
Conv 43×3 Conv384টি ফিল্টারপ্রতি GPU-তে 192টি ফিল্টারবিচ্ছিন্ন (শুধু নিজের GPU-এর Conv 3 পড়ে)
Conv 53×3 Conv + MaxPool256টি ফিল্টারপ্রতি GPU-তে 128টি ফিল্টারবিচ্ছিন্ন (শুধু নিজের GPU-এর Conv 4 পড়ে)
FC 6সম্পূর্ণ সংযুক্ত + Dropout4,096টি নিউরনপ্রতি GPU-তে 2,048টি নিউরনপূর্ণ সিঙ্ক (সব Conv 5 আউটপুটের সঙ্গে যুক্ত)
FC 7সম্পূর্ণ সংযুক্ত + Dropout4,096টি নিউরনপ্রতি GPU-তে 2,048টি নিউরনপূর্ণ সিঙ্ক (সব FC 6 নিউরনের সঙ্গে যুক্ত)
FC 8সম্পূর্ণ সংযুক্ত (Softmax)1,000টি শ্রেণি1,000টি শ্রেণি (সম্মিলিত)পূর্ণ সিঙ্ক (চূড়ান্ত ImageNet পূর্বানুমান দেয়)
  • স্বাভাবিক বৈশিষ্ট্য-বিশেষায়ন। মজার বিষয়, স্তর 1 ও 2 কখনো GPU-গুলোর মধ্যে যোগাযোগ না করায় কার্ড দুটি ধারাবাহিকভাবে বিশেষায়িত ভূমিকা গড়ে তুলেছিল। একটি GPU রং-নিরপেক্ষ প্রান্ত ও টেক্সচার শনাক্তকারী (গ্রেস্কেল Gabor-এর মতো ফিল্টার) শিখেছিল, অন্যটি রং-নির্দিষ্ট ছোপ ও বর্ণচ্ছটায় বিশেষায়িত হয়েছিল।
  • PCIe বাধা সর্বনিম্ন রাখা। মাদারবোর্ডের PCIe বাস দিয়ে ডেটা পাঠানো ধীর ছিল। GPU-গুলোর মধ্যে যোগাযোগ কঠোরভাবে Conv 3 ও সম্পূর্ণ সংযুক্ত স্তরগুলোতেই সীমিত রেখে Krizhevsky ডেটা স্থানান্তরের জন্য থেমে না থেকে GPU-গুলোকে পূর্ণ গতিতে গণনা চালাতে দিয়েছিলেন।

3. ImageNet যুগে এরপর কী ঘটেছিল

AlexNet-এর জয় ImageNet প্রতিযোগিতায় বার্ষিক প্রতিদ্বন্দ্বিতা শুরু করেছিল, যাতে মাত্র তিন বছরে নেটওয়ার্ক 8টি স্তর থেকে 150টিরও বেশি স্তরে পৌঁছায়।

  • 2013 - ZFNet (দৃশ্যায়ন ও সমন্বয়)। Matthew Zeiler ও Rob Fergus লুকানো স্তরগুলোর ভেতরে AlexNet আসলে কী দেখছে তা দৃশ্যায়নের জন্য ডিকনভোলিউশন কৌশল চালু করেন। AlexNet-এর প্রথম স্তরের ফিল্টার 11×11 থেকে 7×7 করে এবং স্ট্রাইড কমিয়ে ZFNet ImageNet-এর top-5 ত্রুটির হার 15.3% থেকে 14.8%-এ নামিয়েছিল।
  • 2014 - VGGNet (একই ধরনের 3×3 ফিল্টারের মাধ্যমে গভীরতা)। Oxford-এর গবেষকেরা প্রমাণ করেন, অনেক ছোট 3×3 কনভোলিউশন স্তরে স্তরে সাজানো (16 বা 19টি স্তর পর্যন্ত), একক বড় ফিল্টার (যেমন 11×11 বা 5×5) ব্যবহারের চেয়ে ভালো কাজ করে। একটির ওপর আরেকটি রাখা দুটি 3×3 স্তর কম প্যারামিটার ও বাড়তি অরৈখিক ReLU অ্যাক্টিভেশন দিয়ে একই 5×5 দর্শনক্ষেত্র জুড়ে কাজ করে, ফলে ত্রুটির হার 7.3%-এ নেমে আসে।
  • 2014 - GoogLeNet / Inception (বহু-স্কেল দক্ষতা)। Google Inception মডিউল চালু করে, যা একই স্তরের ভেতর 1×1, 3×3 ও 5×5 কনভোলিউশন সমান্তরালে চালিয়ে আউটপুটগুলো একত্র করে। ব্যয়বহুল গণনার আগে কম খরচের 1×1 কনভোলিউশন দিয়ে চ্যানেলের গভীরতা সংকুচিত করে GoogLeNet, AlexNet-এর চেয়ে 12 গুণ কম প্যারামিটার ব্যবহার করে 22টি স্তর ও 6.7% ত্রুটির হার অর্জন করে।
  • 2015 - ResNet (স্কিপ সংযোগ ও 152টি স্তর)। শুধু আরও স্তর যোগ করতে থাকলে একসময় প্রশিক্ষণের নির্ভুলতা কমতে শুরু করত, কারণ ব্যাকপ্রপাগেশনের সময় গ্রেডিয়েন্ট বিলীন হয়ে যেত। Microsoft Research Residual Connections (স্কিপ সংযোগ) দিয়ে এর সমাধান করে, যাতে ডেটা সরাসরি আইডেন্টিটি শর্টকাট দিয়ে স্তর এড়িয়ে যেতে পারে। এতে 152-স্তরের নেটওয়ার্ক সম্ভব হয়, যা 3.57% top-5 ত্রুটির হার অর্জন করে প্রথমবারের মতো মানুষের স্তরের বেঞ্চমার্ক পারফরম্যান্সকে (~5%) ছাড়িয়ে যায়।

আরও খবর: এআই ও প্রযুক্তি