প্রকল্প সম্পর্কে
Apex হলো NVIDIA-রক্ষণাবেক্ষণকৃত ইউটিলিটির একটি সংগ্রহ, যার লক্ষ্য PyTorch ব্যবহারকারীদের কাছে আধুনিক মিক্সড প্রিসিশন ও ডিস্ট্রিবিউটেড ট্রেনিং সুবিধা দ্রুত পৌঁছে দেওয়া; এর কিছু কোড ভবিষ্যতে PyTorch-এ আপস্ট্রিম হওয়ার উদ্দেশ্যে লেখা।
এটি যা প্রদান করে:
- মিক্সড প্রিসিশন ট্রেনিং হেল্পার (apex.amp) যা মডেল কম প্রিসিশনে চালাতে সহায়তা করে।
- ডিস্ট্রিবিউটেড ট্রেনিং ইউটিলিটি, যার মধ্যে apex.parallel.DistributedDataParallel এবং SyncBatchNorm রয়েছে।
- অপ্টিমাইজারের জন্য ফিউজড কার্নেল, যেমন FusedAdam, এবং নরমালাইজেশন লেয়ারের জন্য FusedLayerNorm ও FusedRMSNorm।
- ঐচ্ছিক contrib মডিউলের একটি সেট, যা স্পার্সিটি, গ্রুপ ব্যাচ নর্ম, xentropy, ফোকাল লস, ট্রান্সডিউসার লস, পিয়ার মেমরি, NCCL P2P, বটলনেক লেয়ার, ডিস্ট্রিবিউটেড অপ্টিমাইজার এবং GPU ডাইরেক্ট স্টোরেজের মতো ক্ষেত্র কভার করে।
ইনস্টলেশন নোট:
- NGC-এর NVIDIA PyTorch কনটেইনারগুলিতে কাস্টম এক্সটেনশন আগে থেকেই উপলব্ধ থাকে।
- সোর্স থেকে ইনস্টল করার জন্য সুপারিশকৃত পথে APEX_CPP_EXT=1 এবং APEX_CUDA_EXT=1-এর মতো এনভায়রনমেন্ট ভেরিয়েবলসহ pip install --no-build-isolation ব্যবহার করা হয়; লিগ্যাসি কমান্ড-লাইন ফ্ল্যাগ (--cpp_ext, --cuda_ext) এখনও সমর্থিত।
- শুধু Python-ভিত্তিক বিল্ড সম্ভব, তবে তা ফিউজড কার্নেল বাদ দেয়, ফলে FusedAdam, FusedLayerNorm/FusedRMSNorm এবং SyncBatchNorm, DistributedDataParallel ও amp-এর ফিউজড পথ অনুপলব্ধ বা ধীর হয়।
- আলাদা আলাদা contrib মডিউলের নিজস্ব ইনস্টল অপশন প্রয়োজন; কিছু শুধু PyTorch নাইটলির সাথে সামঞ্জস্যপূর্ণ হতে পারে, স্থিতিশীল রিলিজের সাথে নয়। APEX_ALL_CONTRIB_EXT=1 একসাথে সব contrib এক্সটেনশন বিল্ড করে।
- দ্রুত কম্পাইলেশনের জন্য Ninja সুপারিশকৃত, এবং সীমিত CPU বা মেমরি পরিবেশের জন্য প্যারালাল বিল্ড অপশন ডকুমেন্টেড।
- Windows সাপোর্ট পরীক্ষামূলক হিসেবে বর্ণিত।
এটি এমন একটি লাইব্রেরি যা ডিপ লার্নিং মডেল ট্রেনিং করা ডেভেলপারদের জন্য, যারা মিক্সড প্রিসিশন ও ডিস্ট্রিবিউটেড ট্রেনিং বিল্ডিং ব্লক চান; এটি কোনো এন্ড-ইউজার অ্যাপ্লিকেশন নয়।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.