GPU মেমরি চাহিদার মধ্যে ব্যবহৃত ডেটা ও ওয়েট, মধ্যবর্তী ফলাফল, রানটাইম ওয়ার্কস্পেস এবং ওয়ার্কলোড-নির্ভর ক্যাশ অন্তর্ভুক্ত। উদ্দিষ্ট প্রিসিশন, ব্যাচ সাইজ ও কনকারেন্সিতে শীর্ষ ব্যবহার পরিমাপ করুন; সংরক্ষিত মডেলের আকার কেবল একটি ইনপুট।
GPU বাছাই করার আগে ওয়ার্কলোড বাছাই করুন
একটি GPU স্পেসিফিকেশন তখনই কাজে লাগে যখন আপনি সফটওয়্যার এবং এটি যে কাজ করবে তা জানেন। রেন্ডারিং, ইমেজ প্রসেসিং, ট্রেনিং ও ইনফারেন্সের মেমরি ও কম্পিউট প্যাটার্ন ভিন্ন। ক্ষমতা তুলনা করার আগে অ্যাপ্লিকেশনের সমর্থিত GPU আর্কিটেকচার, ড্রাইভার ও রানটাইম যাচাই করুন। প্রয়োজনীয় সফটওয়্যার পথ বা ফিচার সমর্থিত না হলে যথেষ্ট মেমরিসম্পন্ন কার্ডও অনুপযুক্ত হতে পারে।
আপনি যে সর্বোচ্চ ইনপুট আকার, প্রিসিশন, ব্যাচ সাইজ ও সমকালীন কাজ অনুমোদন করতে চান তা বর্ণনা করুন। ইনফারেন্সের জন্য সর্বোচ্চ সমর্থিত অনুরোধ ও সমকালীন সেশন অন্তর্ভুক্ত করুন। রেন্ডারিংয়ের জন্য প্রতিনিধিত্বমূলক দৃশ্য ও টেক্সচার অন্তর্ভুক্ত করুন। একটি সফল ক্ষুদ্র প্রদর্শন প্রমাণ যে স্ট্যাকটি শুরু হতে পারে; এটি প্রমাণ নয় যে সম্পূর্ণ প্রোডাকশন ওয়ার্কলোড ফিট করে।
স্থায়ী ডেটাকে কার্যকরী মেমরি থেকে আলাদা করুন
নির্বাহের সময় মধ্যবর্তী ফলাফল ও অস্থায়ী বাফার দেখা দিলেও ওয়েট বা ইনপুট অ্যাসেট ডিভাইসে থাকতে পারে। ট্রেনিংয়ের অতিরিক্তভাবে গ্রেডিয়েন্ট ও অপটিমাইজার অবস্থা প্রয়োজন হতে পারে। ইনফারেন্স ওয়ার্কলোড এমন ক্যাশ রাখতে পারে যার আকার অনুরোধের সঙ্গে বদলায়। সঠিক বিন্যাস মডেল, ফ্রেমওয়ার্ক ও বাস্তবায়নের উপর নির্ভর করে। প্রতিটি কাজে একটি সর্বজনীন গুণক প্রয়োগ করে সেটিকে ক্ষমতার নিশ্চয়তা হিসেবে গণ্য করবেন না।
একটি সরল গাণিতিক উদাহরণ হিসেবে, প্রতি প্যারামিটারে দুই বাইটে উপস্থাপিত একটি কাল্পনিক সাত-বিলিয়ন-প্যারামিটার মডেলের কেবল সেই প্যারামিটারগুলোর জন্যই প্রায় চৌদ্দ বিলিয়ন বাইট দরকার। সেই হিসাবে রানটাইম বরাদ্দ, অ্যাক্টিভেশন, ক্যাশ ও ফরম্যাট ওভারহেড বাদ পড়ে। এটি একটি নিম্নস্তরের পরিকল্পনা উদাহরণ, এই বক্তব্য নয় যে এমন একটি ওয়ার্কলোড একটি নির্দিষ্ট SwissOctet কনফিগারেশনে ফিট করে।
| মেমরি উপাদান | কী এটি পরিবর্তন করে | কীভাবে তদন্ত করবেন |
|---|---|---|
| ওয়েট বা দৃশ্য অ্যাসেট | মডেল আকার, উপস্থাপনা ও লোড করা অ্যাসেট | স্থাপিত ফরম্যাট ও প্রকৃত লোড করা বরাদ্দ পরিদর্শন করুন |
| মধ্যবর্তী ফলাফল | ইনপুট আকৃতি ও ব্যাচ সাইজ | একটি সম্পূর্ণ প্রতিনিধিত্বমূলক অপারেশন পরিমাপ করুন |
| ক্যাশ | অনুরোধের দৈর্ঘ্য ও কনকারেন্সি | সমর্থিত সর্বোচ্চ ওয়ার্কলোড চালান |
| ওয়ার্কস্পেস ও রানটাইম | লাইব্রেরি, কার্নেল ও নির্বাহ কৌশল | শীর্ষ ডিভাইস ও ফ্রেমওয়ার্ক ব্যবহার পর্যবেক্ষণ করুন |
সঠিক দৃষ্টিভঙ্গিতে শীর্ষ ব্যবহার পরিমাপ করুন
ফ্রেমওয়ার্ক মেট্রিক ও ডিভাইস-স্তরের মেট্রিক ভিন্ন জিনিস বর্ণনা করতে পারে। PyTorch টেনসরকে বরাদ্দ করা মেমরি এবং তার ক্যাশিং অ্যালোকেটর দ্বারা সংরক্ষিত মেমরির মধ্যে পার্থক্য করে, এবং শীর্ষ পরিমাপ দেয়। এর মেমরি ভিজ্যুয়ালাইজেশন ডকুমেন্টেশনও ব্যাখ্যা করে যে তার অ্যালোকেটরের বাইরে করা বরাদ্দ সেই দৃশ্যে নাও দেখা যেতে পারে। একটি সংখ্যা প্রতিটি বরাদ্দ কভার করে ধরে না নিয়ে ফ্রেমওয়ার্কের রিপোর্টকে বৃহত্তর ডিভাইস অবস্থার সঙ্গে তুলনা করুন।
প্রকৃত অপারেশন গরম করুন, তারপর সম্পূর্ণ কাজ এবং কাজগুলোর মধ্যে বাস্তবসম্মত ওভারল্যাপ পরিমাপ করুন। সফটওয়্যার সংস্করণ ও সঠিক ইনপুট শর্ত রেকর্ড করুন। একটি আউট-অফ-মেমরি ঘটনা একটি অস্থায়ী শীর্ষে ঘটতে পারে, তাই একটি শান্ত চূড়ান্ত স্ন্যাপশট সমস্যাটি মিস করতে পারে। ডায়াগনস্টিক ক্যাপচার ব্যক্তিগত রাখুন যখন সেগুলোতে মডেলের বিবরণ বা আপনার অ্যাপ্লিকেশনের ইনপুট সম্পর্কে তথ্য থাকতে পারে।
ব্যাচ সাইজ ও প্রিসিশনকে ডিজাইন সিদ্ধান্ত হিসেবে গণ্য করুন
বড় ব্যাচ ব্যবহার ও মেমরি চাহিদা দুটোই বদলাতে পারে। NVIDIA-এর পারফরম্যান্স নির্দেশনা অপারেশনের আকৃতি, গাণিতিক তীব্রতা ও হার্ডওয়্যার সক্ষমতার মধ্যে মিথস্ক্রিয়া নিয়ে আলোচনা করে। কার্যকর ব্যাচ সাইজ থ্রুপুটের পাশাপাশি ওয়ার্কলোডের লেটেন্সি লক্ষ্যের উপর নির্ভর করে। যে ব্যাচ নীতি প্রতি সেকেন্ডে সম্পন্ন কাজ সর্বাধিক করে তা অ্যাপ্লিকেশনের অনুমোদনের চেয়ে বেশি সময় ব্যবহারকারীদের অপেক্ষা করাতে পারে।
হ্রাসকৃত প্রিসিশন বা কোয়ান্টাইজেশন কিছু মেমরি চাহিদা কমাতে পারে, কিন্তু সামঞ্জস্য ও আউটপুট গুণমান পরীক্ষা করা দরকার। একটি মূল্যায়ন ডেটাসেট রাখুন এবং ফরম্যাট পরিবর্তনের পর প্রাসঙ্গিক ফলাফল তুলনা করুন। প্রকল্প যে আচরণের উপর নির্ভর করে তা যাচাই না করে কেবল ফিট করানোর জন্য মডেলের উপস্থাপনা বদলাবেন না। মেমরি অপ্টিমাইজেশন প্রয়োজনীয় ফলাফল সংরক্ষণ করা উচিত, কেবল একটি বরাদ্দ ত্রুটি এড়ানো নয়।
বাকি মেশিনকেও বাজেটে রাখুন
CPU, হোস্ট RAM ও স্টোরেজ পথ GPU কাজ প্রস্তুত করে ও সরবরাহ করে। ধীর ইনপুট ডিকোডিং বা অপর্যাপ্ত হোস্ট মেমরি অ্যাক্সিলারেটরকে অপেক্ষমাণ রাখতে পারে। বড় মডেল ফাইল ও ডেটাসেটেরও ইনস্টলেশন, অস্থায়ী রূপান্তর ও আপডেটের জন্য যথেষ্ট ডিস্ক স্পেস দরকার। একটি GPU কিনে আগের প্রতিটি ধাপ দ্রুত হয়ে যাবে আশা না করে সম্পূর্ণ পাইপলাইন মূল্যায়ন করুন।
একাধিক GPU স্বয়ংক্রিয়ভাবে একটি সম্মিলিত মেমরি ডিভাইসের মতো আচরণ করে না। অ্যাপ্লিকেশনকে উপযুক্ত সমান্তরাল কৌশল ব্যবহার করতে হবে, এবং যোগাযোগ ওভারহেড গুরুত্বপূর্ণ হতে পারে। কতগুলো ডিভাইস দেওয়া হয়েছে, প্রতিটির মেমরি এবং সফটওয়্যারের সমর্থিত বিন্যাস নিশ্চিত করুন। GPU আপগ্রেড নামের একটি তালিকা একটি অপরিবর্তিত প্রক্রিয়ার জন্য উপলব্ধ মেমরির যাচাইকৃত বর্ণনা নয়।
একটি প্রতিনিধিত্বমূলক গ্রহণযোগ্যতা পরীক্ষা ব্যবহার করুন
নির্বাচিত সফটওয়্যার স্ট্যাক, প্রত্যাশিত সর্বোচ্চ ইনপুট ও অনুমোদিত কনকারেন্সিসহ একটি পরীক্ষা নির্ধারণ করুন। শীর্ষ মেমরি, সমাপ্তির সময়, ত্রুটি ও আউটপুটের গুণমান পরিমাপ করুন। স্বাভাবিক রানটাইম ভিন্নতা ও রক্ষণাবেক্ষণের জন্য কিছু হেডরুম রাখুন, যার পরিমাণ পর্যবেক্ষণ দ্বারা ন্যায্য। ওয়ার্কলোড ফিট না করলে সিদ্ধান্ত নিন কনকারেন্সি কমানো, বাস্তবায়ন বদলানো বা ভিন্ন হার্ডওয়্যার বাছাই করা হবে কি না।
Tensor GPU SwissOctet ক্যাটালগে GPU-সম্পর্কিত বিকল্প উপস্থাপন করে। এর উপর নির্ভর করার আগে সঠিক ডিভাইস, প্রতি-ডিভাইস VRAM, ড্রাইভার সামঞ্জস্য ও নির্বাচিত কনফিগারেশন নিশ্চিত করুন। সাইটটি অ্যাপ্লিকেশন-নির্দিষ্ট ফিট নিশ্চয়তা দেয় না। একটি নথিভুক্ত গ্রহণযোগ্যতা পরীক্ষা সেই হার্ডওয়্যার বিবরণকে আপনার প্রয়োজনীয় কাজের সঙ্গে সংযুক্ত করে।
আপনার ব্যবহারিক চেকলিস্ট।
- সমর্থিত GPU আর্কিটেকচার ও রানটাইম নিশ্চিত করুন।
- ওয়েট, মধ্যবর্তী, ক্যাশ ও ওয়ার্কস্পেসের বাজেট করুন।
- সর্বোচ্চ উদ্দিষ্ট ইনপুট ও কনকারেন্সিতে শীর্ষ পরিমাপ করুন।
- ফ্রেমওয়ার্ক ও ডিভাইস-স্তরের মেমরি দৃষ্টিভঙ্গি তুলনা করুন।
- প্রিসিশন বা ফরম্যাট পরিবর্তনের পর আউটপুট যাচাই করুন।
- অর্ডারের আগে সঠিক প্রতি-ডিভাইস VRAM নিশ্চিত করুন।
যে বিবরণগুলো গুরুত্বপূর্ণ।
সংরক্ষিত মডেলের আকার কি VRAM চাহিদার সমান?+
না। নির্বাহ মধ্যবর্তী ফলাফল, ওয়ার্কস্পেস, ক্যাশ ও অন্যান্য বরাদ্দ যোগ করে, আর স্টোরেজ ফরম্যাট ইন-মেমরি উপস্থাপনা থেকে ভিন্ন হতে পারে।
একটি দ্বিতীয় GPU যোগ করলে কি স্বয়ংক্রিয়ভাবে ব্যবহারযোগ্য মেমরি দ্বিগুণ হবে?+
না। অ্যাপ্লিকেশনের একটি উপযুক্ত সমান্তরাল কৌশল দরকার। প্রতি-ডিভাইস সীমা ও যোগাযোগ আচরণ এখনও গুরুত্বপূর্ণ।
হ্রাসকৃত প্রিসিশন কি সবসময় আউট-অফ-মেমরি সমস্যা সমাধান করতে পারে?+
না। এটি কিছু বরাদ্দ কমাতে পারে, কিন্তু সমর্থন, অবশিষ্ট বাফার ও গ্রহণযোগ্য আউটপুট গুণমান পরীক্ষা করতে হবে।
সূত্রে যান।
এই রেফারেন্সগুলি এই গাইডের প্রযুক্তিগত ধারণাগুলি সমর্থন করে। একটি উৎপাদন সিস্টেম পরিবর্তন করার আগে বর্তমান ডকুমেন্টেশন অনুসরণ করুন।
- NVIDIA: ডিপ লার্নিং পারফরম্যান্স শুরু করুন docs.nvidia.com
- PyTorch: CUDA মেমরি ব্যবহার বোঝা docs.pytorch.org
- PyTorch: CUDA মেমরি ব্যবস্থাপনা docs.pytorch.org
SwissOctet দ্বারা সম্পাদকীয় নির্দেশনা। উদাহরণগুলি উদাহরণমূলক। সেবা স্পেসিফিকেশন, উপলব্ধ অপশন এবং চুক্তিভিত্তিক শর্তগুলি আলাদাভাবে যাচাই করতে হবে।