共用方式為


loop pragma

控制自動平行化程式要如何考慮循環程序代碼,或排除自動向量化工具考慮的迴圈。

語法

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

參數

hint_parallel( n )
編譯程式的提示,指出此循環應該平行處理 n 個線程,其中 n 是正整數常值或零。 如果 n 為零,運行時間會使用線程數目上限。 這是編譯程式的提示,而不是命令。 不保證迴圈會平行處理。 如果迴圈具有數據相依性或結構問題,則不會平行處理。 例如,如果它儲存至超出循環主體使用的純量,則不會平行處理。

除非指定編譯程序參數, /Qpar 否則編譯程式會忽略此選項。

no_vector
根據預設,自動向量化工具會嘗試向量化評估的所有迴圈,可能會從中受益。 指定此選項 pragma 可停用後續循環的自動向量化程式。

ivdep
編譯程式的提示,表示忽略這個迴圈的向量相依性。

備註

若要使用 looppragma,請將它放在迴圈定義之前,而非 中。 會 pragma 針對其後面的迴圈範圍生效。 您可以依任何順序將多個 pragma 指示詞套用至迴圈,但您必須在個別 pragma 語句中陳述每個指示詞。

另請參閱

自動平行處理和自動向量化
Pragma 指示詞和 __pragma_Pragma 關鍵詞