[완료]g++ 최적화 옵션설정
글쓴이: jaeeuniya / 작성시간: 금, 2011/06/03 - 11:49오전
g++ 최적화 옵션설정의 강력하고 도움되는 옵션이 뭐가 있는지요?
O3로 설정되어 운용중인데 더 나은 성능확보를 위해 컴파일 옵션을 설정하여 테스트해 보려고 합니다.
Os로 했더니 사이즈는 1/3정도 줄었지만 성능에는 차이가 없었습니다.
어떤 옵션이 강력하고 도움될까요?
제가 찾아본 옵션들 일부는 아래와 같습니다.
-march=machinetype
-ffast-math
-mfpmath=sse
-funroll-loops
-NDEBUG
-ftree-vectorize
-mcpu=cpu
Forums:
제가 알기로
O3는 O2에 비해서 크게 성능향상이 없는 것으로 알고 있습니다.
성능 개선이 필요하시다면 profiling을 해서 가장 많이 호출되는 놈을 manual optimize하는게 효과가 제일 좋을 것 같습니다.
mcpu, mtune...
-mcpu, -mtune의 파라미터로 어떤 값을 넣어야 하나요?
cpu_type을 넣으라는데 /proc/cpuinfo 열람으로는 뭘 넣어야 할지 모르겠어요.
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 15
model name : Intel(R) Xeon(R) CPU 5138 @ 2.13GHz
stepping : 6
cpu MHz : 2133.466
cache size : 4096 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc pni monitor ds_cpl vmx est tm2 cx16 xtpr lahf_lm
bogomips : 4269.19
man gcc 하신 후에 /mcpu 혹은
man gcc 하신 후에 /mcpu 혹은 /mtune으로 검색해보세요. mcpu, mtune 설정한다고 해서 속도가 갑자기 뛰어나게 최적화되는 것은 아니기때문에
대충 기본 컴파일 옵션 쓰시면 정신건강에 이로울 수 있습니다.
그리고 인텔 계열인 경우에는 icc를 쓰는 것도 좋은 방법이죠.
http://software.intel.com/en-us/articles/intel-compilers/
어디서 받아야 하는지 잘 안보여서 그냥 대충 찾은 링크만 걸어둡니다.
감사합니다
mcpu는 -march로 변경되었네요. -march=pentiumpro로 설정 후 컴파일을 하니 a.out 사이즈가 변하네요.
사이즈가 늘었다는게 좀 그런데 변하기는 합니다.
icc를 사용하면 20%까지 성능향상이 기대되기도 하는데 개발환경이 변경되는 거라 적용이 두렵네요.
답변 감사드립니다.
댓글 달기