본문 바로가기

Language/MFC

컴파일 옵션 변경을 이용하여 속도를 증가 시키는 꼼수

Visual studio 2010 에서 가능(이전 버전도 가능한지 테스트는 않해봤다...)하다.


기본적으로 컴파일러는 반복적인 작업에 대해서 SSE를 사용하도록 설정할 수 있다. 


물론 SSE2 버전이지만 이걸로도 충분히 반복작업의 로드를 줄일 수 있다.


- Alt+F7 을 눌러 속성 창 선택

- C/C++ --> 코드생성 --> 고급 명령 집합 사용  

- 스트리밍 SIMD Extensions 2(/arch:SSE2)  를 선택한다. .


감마 변환 알고리즘을 SSE로 변경하려다가 POW 에서 막혀버리는 바람에 결국 POW 를 C API를 이용했다. 


속도는 엄~~~청 느리더만....나머지 다른 수식을 SSE로 조저도 POW 에서 생기는 부하를 감당하기는 매우 힘들다는 결론이다. 


이거로 그나마 속도를 좀 올리긴 했지만 역시 힘들긴 마찬가지....


근데 결과가 먼가 이상하다.ㅠㅠ 


두 번째로 컴파일러에 속업이 가능한 방법은 연산결과의 정밀도의 중요성이 낮을 때 소수점 길이를 짧게 하여 계산하는 방법이다. 


- Alt+F7 을 눌러 속성 창 선택

- C/C++ --> 코드생성 --> 부동 소수점 모델 

- Fast(/fp:fast)


를 선택하면 float나 double 연산시 소수점을 짧게 하여 계산한다.