2017-01-04 14 views
3

내 질문에 Visual Studio 2015에서 SIMD 자동 벡터화 최적화 (릴리스 모드의 다른 최적화 유지) 만 비활성화하려면 어떻게해야합니까?Visual Studio 2015 (C++ 용)에서 SIMD 자동 벡터화 최적화 만 비활성화하는 방법은 무엇입니까?

1) 전체 프로젝트를 컴파일 중입니다.

2) 코드 부분.

첫 번째 경우 전체 프로젝트에서이 기능을 비활성화하는 방법을 배우고 싶습니다. 두 번째 경우에 대해서는 #pragma optimize("", off)#pragma optimize("", on)을 사용할 때 모든 최적화에 대해 가능한 것과 마찬가지로 코드의 특정 영역에 대해 수행 할 수 있는지 여부를 알고 싶습니다.

이 목적은 수동으로 최적화 된 일부 코드와 컴파일러의 자동 SIMD 벡터화를 비교 한 것입니다.

+0

는 SSE 지원 끄기? – MSalters

+0

모든 x64에는 최소 SSE2가 있으므로 x64에서는이를 수행 할 수 없습니다. – Mysticial

+0

@Mysticial 따라서 x86 용으로 컴파일해야만 할 수 있습니다. – blipblop

답변

1

/O2 또는 /Ox으로 빌드 할 때 Visual C++ 자동 벡터 라이저가 자동으로 활성화됩니다.

/Qvec-report:1 또는 /Qvec-report:2으로 작성하십시오.

당신은 활성화 표준 최적화를 유지하는 세계적하면서 자동 벡터화을 해제 할 문서화 된 방법이 없습니다 MSDN

참조 #pragma loop(no_vector)

를 사용하여 특정 루프를 해제 할 수 있습니다.

자세한 내용은이 blog seriesvideo을보고, 충분하지 않은 Auto-Vectorization Cookbook

+0

답변 해 주셔서 감사합니다. 위의 인용문을 정확히 어디에 찾아 냈습니까? 포함 된 링크 중 하나에서 찾지 못했습니다 (또한 요리 책에 포함되지 않음). 아마 당신이 관심의 참조를 놓친거야? – blipblop

+0

따옴표만큼 인용문이 아닙니다. 자동 벡터 라이저를 비활성화하는 문서화 된 컴파일러 스위치는 없습니다. –