একটি চেইন তার দুর্বলতম লিঙ্কের মতো শক্তিশালী - এবং আপনার AI/ML পরিকাঠামো আপনার ধীরতম উপাদানের মতো দ্রুত। আপনি যদি GPU গুলি দিয়ে মেশিন লার্নিং মডেলকে প্রশিক্ষণ দেন, তাহলে আপনার দুর্বল লিঙ্ক হতে পারে আপনার স্টোরেজ সমাধান। ফলাফল যাকে আমি বলি "ক্ষুধার্ত GPU সমস্যা।" স্টারভিং জিপিইউ সমস্যাটি ঘটে যখন আপনার নেটওয়ার্ক বা আপনার স্টোরেজ সলিউশন আপনার জিপিইউগুলি সম্পূর্ণরূপে ব্যবহার করার জন্য যথেষ্ট দ্রুত আপনার প্রশিক্ষণ যুক্তিতে প্রশিক্ষণ ডেটা পরিবেশন করতে পারে না। লক্ষণগুলি মোটামুটি সুস্পষ্ট। আপনি যদি আপনার জিপিইউগুলি পর্যবেক্ষণ করেন, তাহলে আপনি লক্ষ্য করবেন যে সেগুলি কখনই সম্পূর্ণরূপে ব্যবহারের কাছাকাছি যায় না। আপনি যদি আপনার প্রশিক্ষণের কোড তৈরি করে থাকেন, তাহলে আপনি লক্ষ্য করবেন যে মোট প্রশিক্ষণের সময় IO দ্বারা প্রভাবিত হয়।
দুর্ভাগ্যবশত, যারা এই সমস্যা নিয়ে কুস্তি করছেন তাদের জন্য খারাপ খবর আছে। এই সমস্যাটি আগামী বছরগুলিতে কীভাবে আরও খারাপ হতে চলেছে তা বোঝার জন্য জিপিইউগুলির সাথে তৈরি করা কিছু অগ্রগতি দেখুন।
GPU দ্রুততর হচ্ছে। শুধুমাত্র কাঁচা কর্মক্ষমতাই ভালো হচ্ছে না, মেমরি এবং ব্যান্ডউইথও বাড়ছে। চলুন দেখে নেওয়া যাক Nvidia-এর সাম্প্রতিক GPU-এর এই তিনটি বৈশিষ্ট্য
জিপিইউ | কর্মক্ষমতা | স্মৃতি | স্মৃতি ব্যান্ডউইথ |
---|---|---|---|
A100 | 624 TFLOPS | 40GB | 1,555GB/s |
H100 | 1,979 টিএফএলপিএস | 80GB | 3.35TB/s |
H200 | 1,979 টিএফএলপিএস | 141 জিবি | 4.8TB/s |
উপরের টেবিলটি A100 এর জন্য PCIe (পেরিফেরাল কম্পোনেন্ট ইন্টারকানেক্ট এক্সপ্রেস) সকেট সলিউশন এবং H100 এবং H200 এর জন্য SXM (সার্ভার PCI এক্সপ্রেস মডিউল) সকেট সমাধানের সাথে সারিবদ্ধ পরিসংখ্যান ব্যবহার করে। A100-এর জন্য SXM পরিসংখ্যান বিদ্যমান নেই। পারফরম্যান্সের ক্ষেত্রে, তুলনা করার জন্য ফ্লোটিং পয়েন্ট 16 টেনসর কোর পরিসংখ্যান ব্যবহার করা হয়।
উপরের পরিসংখ্যানের উপর কয়েকটি পর্যবেক্ষণ কল করার মতো। প্রথমত, H100 এবং H200-এর কার্যক্ষমতা একই (1,979 TFLOPS), যা A100-এর থেকে 3.17 গুণ বেশি। H100-এ A100 এর চেয়ে দ্বিগুণ মেমরি রয়েছে এবং মেমরি ব্যান্ডউইথ একই পরিমাণে বৃদ্ধি পেয়েছে - যা বোঝায় অন্যথায়, GPU নিজেই ক্ষুধার্ত হবে। H200 একটি বিশাল 141GB মেমরি পরিচালনা করতে পারে এবং এর মেমরি ব্যান্ডউইথ অন্যান্য GPU গুলির সাথে সমানুপাতিকভাবে বৃদ্ধি পেয়েছে।
আসুন এই প্রতিটি পরিসংখ্যানকে আরও বিশদে দেখি এবং মেশিন লার্নিং বলতে কী বোঝায় তা নিয়ে আলোচনা করি।
কর্মক্ষমতা - একটি টেরাফ্লপ (TFLOP) হল প্রতি সেকেন্ডে এক ট্রিলিয়ন (10^12) ফ্লোটিং-পয়েন্ট অপারেশন। এটি একটি 1 যার পরে 12টি শূন্য রয়েছে (1,000,000,000,000)। গিগাবাইটে IO চাহিদার সাথে TFLOP-এর সমতুল্য করা কঠিন কারণ মডেল প্রশিক্ষণের সময় যে ফ্লোটিং পয়েন্ট অপারেশনগুলি ঘটে সেগুলি সহজ টেনসর গণিত এবং সেইসাথে লস ফাংশন (ওরফে গ্রেডিয়েন্ট) এর বিরুদ্ধে প্রথম ডেরিভেট করে। যাইহোক, আপেক্ষিক তুলনা সম্ভব। উপরের পরিসংখ্যানের দিকে তাকালে, আমরা দেখতে পাচ্ছি যে H100 এবং H200, যা উভয়ই 1,979 TFLOPS-এ পারফর্ম করে, 3 গুণ দ্রুত - সম্ভাব্যভাবে 3 গুণ দ্রুত ডেটা খরচ করে যদি অন্য সবকিছু ঠিক রাখতে পারে।
GPU মেমরি - ভিডিও RAM বা গ্রাফিক্স RAM নামেও পরিচিত। GPU মেমরি সিস্টেমের প্রধান মেমরি (RAM) থেকে আলাদা এবং গ্রাফিক্স কার্ড দ্বারা সম্পাদিত নিবিড় গ্রাফিকাল প্রসেসিং কাজগুলি পরিচালনা করার জন্য বিশেষভাবে ডিজাইন করা হয়েছে। মডেল প্রশিক্ষণের সময় GPU মেমরি ব্যাচের আকার নির্দেশ করে। অতীতে একটি CPU থেকে একটি GPU-তে প্রশিক্ষণ লজিক সরানোর সময় ব্যাচের আকার হ্রাস করা হয়েছিল। যাইহোক, GPU মেমরি ধারণক্ষমতার পরিপ্রেক্ষিতে CPU মেমরির সাথে যুক্ত হওয়ায় GPU প্রশিক্ষণের জন্য ব্যবহৃত ব্যাচের আকার বৃদ্ধি পাবে। যখন কর্মক্ষমতা এবং মেমরির ক্ষমতা একই সময়ে বৃদ্ধি পায়, তখন ফলাফলটি বৃহত্তর অনুরোধগুলি হয় যেখানে প্রতিটি গিগাবাইট প্রশিক্ষণ ডেটা দ্রুত প্রক্রিয়া করা হয়।
মেমরি ব্যান্ডউইথ - GPU মেমরি ব্যান্ডউইথকে "হাইওয়ে" হিসাবে ভাবুন যা মেমরি এবং কম্পিউটেশন কোরকে সংযুক্ত করে। এটি নির্ধারণ করে যে প্রতি ইউনিটে কত ডেটা স্থানান্তর করা যেতে পারে। একটি প্রশস্ত মহাসড়ক যেমন একটি নির্দিষ্ট সময়ের মধ্যে আরও গাড়িকে যেতে দেয়, তেমনি একটি উচ্চ মেমরি ব্যান্ডউইথ মেমরি এবং GPU-এর মধ্যে আরও ডেটা স্থানান্তর করতে দেয়। আপনি দেখতে পাচ্ছেন, এই GPU-র ডিজাইনাররা মেমরির সমানুপাতিক প্রতিটি নতুন সংস্করণের জন্য মেমরি ব্যান্ডউইথ বাড়িয়েছে; অতএব, চিপের অভ্যন্তরীণ ডেটা বাসটি বাধা হয়ে দাঁড়াবে না।
2023 সালের আগস্টে, এনভিডিয়া
যদিও গ্রেস হপার সুপারচিপের সমস্ত স্পেসিফিকেশন আগের চিপগুলির তুলনায় উন্নতির প্রতিনিধিত্ব করে, AI/ML ইঞ্জিনিয়ারদের জন্য সবচেয়ে গুরুত্বপূর্ণ উদ্ভাবন হল এর ইউনিফাইড মেমরি। গ্রেস হপার GPU কে CPU এর মেমরিতে সম্পূর্ণ অ্যাক্সেস দেয়। এটি গুরুত্বপূর্ণ কারণ, অতীতে, প্রশিক্ষণের জন্য জিপিইউ ব্যবহার করতে ইচ্ছুক প্রকৌশলীদের প্রথমে সিস্টেম মেমরিতে ডেটা টেনে আনতে হত এবং তারপর সেখান থেকে ডেটাগুলিকে জিপিইউ মেমরিতে নিয়ে যেতে হত। গ্রেস হপার জিপিইউতে ডেটা পেতে সিপিইউ-এর মেমরিকে বাউন্স বাফার হিসাবে ব্যবহার করার প্রয়োজনীয়তা দূর করে।
কয়েকটি মূল GPU পরিসংখ্যান এবং সেইসাথে গ্রেস হপারের ক্ষমতাগুলির সহজ তুলনা, GPU গুলি আপগ্রেড করার জন্য এবং অন্য সবকিছু ঠিক রাখতে পারে তা নিশ্চিত করার জন্য দায়ী কারও কাছে কিছুটা ভীতিকর হতে পারে। এই GPU উন্নতিগুলি বজায় রাখতে একটি স্টোরেজ সলিউশনের একেবারে দ্রুত হারে ডেটা পরিবেশন করতে হবে। আসুন ক্ষুধার্ত জিপিইউ সমস্যার একটি সাধারণ সমাধান দেখি।
এই সমস্যার একটি সাধারণ এবং সুস্পষ্ট সমাধান রয়েছে যার জন্য সংস্থাগুলিকে তাদের বিদ্যমান স্টোরেজ সমাধান প্রতিস্থাপন বা আপগ্রেড করার প্রয়োজন নেই। আপনি আপনার বিদ্যমান স্টোরেজ সমাধান অক্ষত রাখতে পারেন যাতে আপনি আপনার প্রতিষ্ঠানের প্রয়োজনীয় সমস্ত এন্টারপ্রাইজ বৈশিষ্ট্যগুলির সুবিধা নিতে পারেন৷ এই স্টোরেজ সমাধানটি সম্ভবত একটি ডেটা লেক যা আপনার প্রতিষ্ঠানের সমস্ত অসংগঠিত ডেটা ধারণ করে - তাই, এটি বেশ বড় হতে পারে, এবং মালিকানার মোট খরচ একটি বিবেচনা। এটিতে অপ্রয়োজনীয়তা, নির্ভরযোগ্যতা এবং নিরাপত্তার জন্য সক্ষম অনেক বৈশিষ্ট্য রয়েছে, যার সবকটি কার্যক্ষমতাকে প্রভাবিত করে।
যাইহোক, যা করা যেতে পারে, একটি স্টোরেজ সমাধান সেট আপ করা যা আপনার কম্পিউট অবকাঠামোর মতো একই ডেটা সেন্টারে রয়েছে - আদর্শভাবে, এটি আপনার কম্পিউটের মতো একই ক্লাস্টারে থাকবে। আপনার কাছে উপলব্ধ সেরা স্টোরেজ ডিভাইসগুলির সাথে একটি উচ্চ-গতির নেটওয়ার্ক রয়েছে তা নিশ্চিত করুন৷ সেখান থেকে, শুধুমাত্র এমএল প্রশিক্ষণের জন্য প্রয়োজনীয় ডেটা কপি করুন।
অ্যামাজন সম্প্রতি ঘোষণা করেছে
আমি উপরে বর্ণিত সাধারণ সমাধানটির জন্য AWS এর S3 স্টোরেজ সলিউশনকে বর্ধিত খরচে বিশেষ বালতি অফার করে কাস্টমাইজ করতে হবে। অতিরিক্তভাবে, কিছু সংস্থা (যারা MinIO গ্রাহক নয়) বিশেষ স্টোরেজ সলিউশন কিনছে যা আমি উপরে বর্ণিত সহজ জিনিসগুলি করে। দুর্ভাগ্যবশত, এটি একটি বিদ্যমান পরিকাঠামোতে জটিলতা যোগ করে যেহেতু তুলনামূলকভাবে সহজ সমস্যা সমাধানের জন্য একটি নতুন পণ্যের প্রয়োজন হয়।
এই সবের বিড়ম্বনা হল যে MinIO গ্রাহকদের সবসময় এই বিকল্প ছিল। NVMe ড্রাইভ সহ একটি উচ্চ-গতির নেটওয়ার্কে MinIO এর একটি নতুন ইনস্টলেশনের মাধ্যমে আমি উপরে যা বর্ণনা করেছি তা আপনি ঠিক করতে পারেন। MinIO হল একটি সফ্টওয়্যার-সংজ্ঞায়িত স্টোরেজ সলিউশন - একই পণ্য বিভিন্ন স্টোরেজ ডিভাইস ব্যবহার করে বেয়ার মেটাল বা আপনার পছন্দের ক্লাস্টারে চলে। যদি আপনার কর্পোরেট ডেটা লেক HDDs সহ বেয়ার মেটালে MinIO ব্যবহার করে এবং এটি আপনার সমস্ত নন-এমএল ডেটার জন্য ভাল কাজ করে - তাহলে এটি প্রতিস্থাপন করার কোন কারণ নেই। যাইহোক, যদি ML এর জন্য ব্যবহৃত ডেটাসেটগুলির জন্য দ্রুত IO এর প্রয়োজন হয় কারণ আপনি GPU ব্যবহার করছেন, তাহলে আমি এই পোস্টে যে পদ্ধতির কথা উল্লেখ করেছি তা বিবেচনা করুন। MinIO-র আপনার উচ্চ-গতির উদাহরণে ব্যবহারের জন্য আপনার ML ডেটার একটি অনুলিপি তৈরি করতে ভুলবেন না - MinIO-এর শক্ত ইনস্টলেশনে একটি সোনার কপি সর্বদা উপস্থিত থাকা উচিত। এটি আপনাকে আপনার MinIO-এর উচ্চ-গতির উদাহরণে প্রতিলিপি এবং এনক্রিপশনের মতো বৈশিষ্ট্যগুলি বন্ধ করার অনুমতি দেবে, কর্মক্ষমতা আরও বৃদ্ধি করবে। MinIO ব্যবহার করে ডেটা অনুলিপি করা সহজ
MinIO আপনার ক্ষুধার্ত জিপিইউ খাওয়ানোর জন্য প্রয়োজনীয় কর্মক্ষমতা দিতে সক্ষম - ক
ডাউনলোড করুন
এছাড়াও এখানে উপস্থিত হয়.