منصوبے کے بارے میں
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.