Academic Research in Educational Sciences Volume 4 | Issue 5 | 2023 ISSN: 2181-1385 ISI: 0,967 | Cite-Factor: 0,89 | SIS: 1,9 | ASI: 1,3 | SJIF: 5,771 | UIF: 6,1 sa 520 May, 2023 https://t.me/ares_uz Multidisciplinary Scientific Journal yangi statementni qaytarish uchun kerakli amalni amalga oshirishi kerak.
[strength_reduction] [6]
8.
(Loop Vectorization) Loop vektorizatsiyasi. Zamonaviy protsessorlarda
mavjud bo'lgan parallelizmdan foydalanish uchun bir vaqtning o'zida siklning bir
nechta iteratsiyasini qayta ishlash uchun vektor ko'rsatmalaridan foydalanadi.
Bu yerda Loop Vectorization metodi uchun umumiy metod(kod) ko‟rsatilgan
import numpy as np
def
vectorize_loop(loop_body, vector_size):
n = len(loop_body)
# Vektorlashtirishdan keyin qancha iteratsiya qolishini aniqlang
remainder = n % vector_size
# Vektorizatsiya bilan mos keladigan yangi sikl tanasini yaratish
new_loop_body = loop_body[: n - remainder]
# Vektorlashtirilgan halqa tanasini yarating
for i in range(0, n - remainder, vector_size):
# Loop tanasining bir bo'lagini ajratib oling
slice_body = loop_body[i: i + vector_size]
# Bo'lakni vektor operatsiyasiga aylantirish
vector_op = np.array(slice_body)
# Yangi sikl tanasiga vektor operatsiyasini qo'shing
new_loop_body.append(vector_op)
# Qolgan statementlarni yangi sikl tanasiga qo'shing
new_loop_body.extend(loop_body[n – remainder :])
return new_loop_body
Ushbu kodda “vektorize_loop” funksiyasi ikkita parametrni oladi: original sikl
tanasini ifodalovchi “loop_body” va vektorlashtirilgan bo'laklarning o'lchamini
belgilaydigan “vector_size”.
Funktsiya ichida “loop_body” uzunligi hisoblab chiqiladi va n o'zgaruvchisida
saqlanadi. Qolgan o'zgaruvchi vektorizatsiyadan keyin qolgan iteratsiyalar sonini
aniqlash uchun ishlatiladi.
“new_loop_body” deb nomlangan yangi ro'yxat original “loop_body”ni n -
qoldig'igacha bo'lish orqali yaratiladi. Bu yangi sikl tanasi vektorizatsiya bilan mos
kelishini ta'minlaydi.
Keyin sikl 0 dan n gacha - qoldiq oralig'ida “vektor_size” qadam o'lchami bilan
takrorlanadi. Har bir iteratsiyada vektor operatsiyasi sifatida qayta
ishlanishi kerak bo'lgan elementlarning bir qismini ifodalovchi
“loop_body” bo'limi chiqariladi.