الدرس 28: occupancy: warps نشطة لكل SM
يمكن لكل Streaming Multiprocessor (SM) على الـ GPU أن يحتفظ بعدد محدود فقط من الـ warps النشطة في آنٍ واحد. يُعرَّف الـ occupancy بأنه النسبة: occupancy = warps نشطة / أقصى عدد ممكن من الـ warps لكل SM. لماذا يهم هذا؟ عندما ينفد العمل من warp واحد أو ينتظر الذاكرة، يستطيع الـ SM أن ينتقل فوراً إلى w
تخيّل نادلاً يتعامل مع عدة طاولات في آنٍ واحد. عندما لا تنتهي إحدى الطاولات من الاختيار من القائمة، ينتقل إلى طاولة أخرى بدلاً من الوقوف والانتظار. كلما زاد عدد الطاولات النشطة لديه، قلّ الوقت الذي يضيّعه في الانتظار. لكن إذا كان لديه عدد كبير جداً من الطاولات، فستحصل كل طاولة على اهتمام أقل — لذا فإن المزيد من الطاولات ليس دائماً أفضل.
- occupancy
- نسبة الـ warps النشطة على SM إلى أقصى عدد من الـ warps يدعمه الـ SM. الـ occupancy المرتفع يساعد على إخفاء فترات توقف الذاكرة.
- SM
- وحدة المعالجة على الـ GPU التي تُشغّل الـ blocks. لموارده (registers، shared memory) سعة محدودة تتقاسمها الـ blocks.
- latency hiding
- عندما ينتظر warp الذاكرة، ينتقل الـ SM إلى warp آخر. المزيد من الـ warps النشطة يعني المزيد من العمل الذي نُخفي خلفه الانتظار.
- حد المورد
- registers لكل thread، وshared memory لكل block، وحجم الـ block — كل منها قد يحدّ من عدد الـ blocks التي تتّسع في SM.