Share via


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 關鍵字