저는 컴퓨팅 클러스터(단일 노드)에서 실행될 멤브레인을 시뮬레이션하기 위한 코드를 작성하고 있습니다. 이 컴퓨터의 코드를 최적화하고 싶습니다. 저는 -optimize, -O3 및 -march=core2를 사용했습니다.
행군 계수를 높일 수 있는지, 이를 개선하기 위해 할 수 있는 다른 조치가 있는지 어떻게 알 수 있나요?
감사해요
답변1
사용 -mtune
. -march
허용되는 명령 세트를 결정하고 -mtune
코드 성능을 조정하는 데 사용됩니다(항상 그렇듯이 참고자료 참조 man gcc
). 특정 CPU 유형에 따라 다른 값을 고려할 수도 있습니다 core2
. 최신 GCC 버전을 사용하고 있다면 이것을 사용하는 것이 더 나을 것입니다 (적어도 4.4
내 생각에는) .native
답변2
가장 좋은 방법은 컴파일러 매뉴얼을 읽고 최적화 옵션을 살펴보는 것입니다. 일부 최적화는 큰 이점을 제공하지 않으므로 코드를 컴파일한 후 테스트해야 합니다. 선택한 옵션에 따라 코드에 오류가 있을 수 있습니다.
icc를 사용하면 코드에서 일부 #pragma 옵션을 사용하여 특정 루프를 병렬화할 수 있습니다.
답변3
계산에 많은 벡터가 포함된 경우 다음을 고려해 볼 수 있습니다.인텔 수학 라이브러리. 저는 제가 진행 중인 작업 프로젝트에 이 제품을 사용하고 있는데 사람들이 이를 보증합니다.