loop pragma

자동 병렬 변환기에서 루프 코드를 고려하는 방법을 제어하거나 자동 벡터라이저의 고려 사항에서 루프를 제외합니다.

구문

#pragma loop( hint_parallel(n) )
#pragma loop( no_vector )
#pragma loop( ivdep )

매개 변수

hint_parallel(n)
n이 양의 정수 리터럴 또는 0인 n 스레드에서 이 루프를 병렬 처리해야 한다는 컴파일러의 힌트입니다. n이 0이면 런타임에 최대 스레드 수가 사용됩니다. 명령이 아니라 컴파일러에 대한 힌트입니다. 루프가 병렬 처리된다는 보장은 없습니다. 루프에 데이터 종속성 또는 구조적 문제가 있는 경우 병렬 처리되지 않습니다. 예를 들어 루프 본문 외에 사용되는 스칼라에 저장하는 경우 병렬 처리되지 않습니다.

컴파일러 스위치를 지정하지 않는 한 /Qpar 컴파일러는 이 옵션을 무시합니다.

no_vector
기본적으로 자동 벡터라이저는 평가되는 모든 루프를 벡터화하려고 시도하면 이점을 얻을 수 있습니다. 다음 루프에 대해 자동 벡터라이저를 사용하지 않도록 설정하려면 이를 pragma 지정합니다.

ivdep
이 루프에 대한 벡터 종속성을 무시하는 컴파일러에 대한 힌트입니다.

설명

사용하려면 루프 정의가 looppragma아니라 바로 앞에 배치합니다. 루프 pragma 를 따르는 루프의 범위에 적용됩니다. 루프에 여러 pragma 지시문을 순서대로 적용할 수 있지만 각 지시문을 별도의 pragma 문에 명시해야 합니다.

참고 항목

자동 병렬화 및 자동 벡터화
Pragma 지시문 및 __pragma_Pragma 키워드(keyword)