PyTorch: xotira sozlamasi bor, ta’siri esa yo‘qmi?
PyTorch: xotira sozlamasi bor, ta’siri esa yo‘qmi?
GPU xotirasi yetishmasligi haqidagi maslahatdan max_split_size_mb ni qo‘shdingiz, lekin xato qolaverdi. Qiymatlarni almashtirishdan oldin dasturingizda xotirani qaysi mexanizm ajratayotganini tekshiring.
PyTorch hujjatiga ko‘ra, max_split_size_mb yirik bloklarning bo‘linishini faqat native allocator’da cheklaydi. Backend cudaMallocAsync bo‘lsa, bu parametr e’tiborga olinmaydi. Bunday rejimda uni o‘zgartirish uzilgan quvurning jo‘mragini burashga o‘xshaydi.
Muammo chiqayotgan dasturning o‘zida import torch dan keyin print(torch.cuda.memory.get_allocator_backend()) qatorini qo‘shing. U faol backend’ni ko‘rsatadi. Natija cudaMallocAsync bo‘lsa, max_split_size_mb qiymatini tanlashga vaqt ketkazmang. Boshqa sozlamali alohida Python’ni emas, aynan vazifangiz ishlayotgan jarayonni tekshiring.
Bu behuda tajribalardan saqlaydi. Hatto native uchun ham hujjat bu parametrni xotira yetishmay, ko‘p bo‘lingan bloklar faol ishlatilmay turgan holatda so‘nggi chora sifatida tavsiya qiladi; tezlik pasayishi mumkin. Avval sozlama sizning rejimingizda ishlashini tekshiring, keyin qiymatini tanlang.

