Как векторизация помогает сократить время вычислений? - PullRequest
0 голосов
/ 17 апреля 2020

Я смотрю видео Векторизация , в которой автор объясняет, что векторизация сократит время вычислений. Например,

Код:

import numpy as np
import time

a= np.random.rand(100000)
b= np.random.rand(100000)

tic = time.time()
c = np.dot(a,b)
toc = time.time()

print(c)
print("Vectorization Version: "+ str(100000 * (toc - tic)) +"ms" )

c = 0
tic = time.time()
for i in range(100000):
    c += a[i] * b[i]

toc = time.time()
print(c)
print("NonVectorization Version: "+ str(100000 * (toc - tic)) +"ms" )

Вывод:

25108.8250776
Vectorization Version: 12.660026550292969ms
25108.8250776
NonVectorization Version: 7782.268524169922ms

Как векторизация помогает сократить вычисления время

1 Ответ

0 голосов
/ 21 апреля 2020

Поскольку векторизация - это операция SIMD (одна инструкция, несколько данных). Одна инструкция выполняет одну и ту же операцию с несколькими операндами параллельно. [ 1 ]

В то время как циклы обычно называются операцией MIMD (множественные инструкции, множественные данные) компьютером. Даже если в l oop есть только одна операция, компьютер видит эти операции как разные инструкции на каждой итерации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...