3-rasm. Bazaviy tizimda GEMM ilovasining bajarilish kechikishlari. X o'qi bajarilish davrlari sonini ifodalaydi: ( a ) faqat protsessor uchun bajarish kechikishi va ( b ) ishni tushirish orqali faqat vektor birligi uchun bajarish kechikishi.
3-rasmda ko'rsatilganidek , tushirishning qo'shimcha xarajatlari CPU tomonidagi ish uchun talab qilinadigan vaqtdan ancha qisqaroq; shuning uchun yuk tushirish protsessor yukini kamaytirishi mumkinligi isbotlangan. Biroq, asosiy kuzatish sifatida, protsessor tomonidagi ish uchun talab qilinadigan vaqt ( 3-a-rasmda ko'rsatilganidek ) vektor birligi tomonidagi ish uchun ( 3-rasmda ko'rsatilganidek ) farq qiladi. CPU tomonida ishlash uchun zarur bo'lgan vaqt mos keladigan vektor birligi tomonidagi ish uchun talab qilinadigan vaqtdan kamroq va bir xil tendentsiya Polybench to'plamidagi barcha ko'rsatkichlar uchun kuzatilgan . Bu natija oqilona ko'rinadi, chunki vektor birligining har bir ijro birligi protsessorga qaraganda uzoqroq kechikishga ega va vektor blokining bir nechta ijro birliklari blokirovkada bajarilgandagina vektor birligi protsessordan yaxshiroq ishlaydi. Shuning uchun, to'liq yuk tushirish unumdorlikni oshirishga olib kelmaydi va protsessorda yuk bo'shatish yuki protsessorda mahalliy bajarilishidan ancha kichik bo'lganligi sababli, protsessorlar va vektor bloklaridagi ish yukini ularni ajratish orqali parallel ravishda bajarish. ikki qismga bo'lish istiqbolli yondashuvdir.
Vektor birligidagi buyruq navbati - bu vektor skalyar birligi protsessordan yuklangan ko'rsatmalarni oladigan konteyner. Buyruqlar navbatining o'lchami cheksiz bo'lsa, ishlash parallel bajarish ostida eng yaxshi bo'ladi. 4-rasma shuni ko'rsatadiki, bu taxminga asoslanib, protsessor vektor blokidan foydalanish uchun dastlab vektor blokidagi barcha bo'lingan ishni tushirishi va keyin CPU tomonida qolgan vazifalarni bajarishi mumkin. Resursning ishlamay qolishi har qanday vaqtda sodir bo'lmagani uchun eng yaxshi ishlashga erishiladi. Biroq, cheklangan navbat hajmi tufayli protsessor to'xtab qolishlari ko'pincha vektor blokiga barcha vazifalar tayinlanganda paydo bo'ladi. Shunday qilib, protsessor ba'zi vazifalarni (to'plamni) tushirishni takrorlashi va vektor bloki ishlayotganligi sababli, butun vazifa tugaguniga qadar CPU tomonidagi boshqa vazifalarni bajarishi kerak.
Do'stlaringiz bilan baham: |