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
編譯程式的提示,表示忽略這個迴圈的向量相依性。
備註
若要使用 loop
pragma,請將它放在迴圈定義之前,而非 中。 會 pragma 針對其後面的迴圈範圍生效。 您可以依任何順序將多個 pragma 指示詞套用至迴圈,但您必須在個別 pragma 語句中陳述每個指示詞。