본문 바로가기
3. 개발 관련/정리 :: issue 와 resovle

Automatic Vectorization in C Language

by kyuho.choi 2010. 11. 30.
728x90
반응형

http://gcc.gnu.org/projects/tree-ssa/vectorization.html

뭐좀 보다보니 자동 벡터화 관련된 내용을 찾아볼일이 생겼음...

C에서의 벡터화와 관련된 내용을 보니 루프최적화와 관련된 내용인것 같은데...어렵네잉..ㅠㅠ

음...

음...

매트릭스 생성과 관련한 내용인득 =ㅅ= /



다른 것 보다 궁금한것은...

다음의 정확한 의미랄까...그냥 별 생각없이 썻던 것도 있고 대충 뭔지만 아는 것도 있고...졸려서 구글링은 귀찮고 ㅠㅠ

__attribute__ : 변수 선언할때 대충 속성 들 지정하는 키워드, ex. volatile
__restrict__  : 귀찮음을 무릎쓰고 찾아보니 __restrict 와 유사한 듯, CSTD 버전에 따라 달리 사용하는 것 같음...
__restrict   : 포인터 선언시에 해당 어드레스나 인자가 다른 메쏘드들에 의해서 접근되지 않도록 제한하는 것, 즉 선언한 포인터만 억세스 가능하도록 설정하는 것,


간단한 예제는 다음과 같다. 

 void add_ints(int * __restrict pa, int * __restrict pb, unsigned int n, int x)
 {
    unsigned int i;
    for(i = 0; i < (n & ~3); i++)
      pa[i] = pb[i] + x;
 }

이게 왜 자동 벡터화냐면 restrict 로 지정한 포인터들을 데리고 매트릭스를 만드는 건데,
말 그대로 벡터를 만들기 때문임 -ㅅ-;;아 몰라 귀찮음;;
728x90
반응형

댓글