Vectorization :

   프로그램의 흐름제어중 반복 구조를 for-statement가 아닌 vector연산을 이용해서 최적화 하는 기법.

   기존의 for-loop보다 훨씬 빠른속도로 연산이 가능하며, GPU는 물론 대부분의 CPU에서 SIMD 명령셋을

   지원 하기 때문에 CPU에서도 For-loop에 비해 훨씬 빠른 속도로 연산이 가능 하다.



Basic Notation :


    

1
2
3
4
5
for(i = 0 ; n ; i++){
    fot (j = 0 ; m ; j++){
      u[i] += A[i][j] * v[j]
    }
}
cs


-> A * v




 


위의 식은 일반적인 회귀식의 결과 z를 계산할때 스칼라 값인 b를 1 x m 벡터로 만들어서 기존의 for-loop을 벡터화. 사진 출처- Andrew ng ( cousera ) 


더많은 예제는 머신러닝 예제 코드에서 볼 수 있습니다.







참고자료 : 

https://stonzeteam.github.io/SIMD-%EB%B3%91%EB%A0%AC-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D/

https://www.coursera.org/learn/neural-networks-deep-learning/lecture/IgFnJ/vectorizing-logistic-regressions-gradient-output



+ Recent posts