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 語句中陳述每個指示詞。
另請參閱
意見反映
https://aka.ms/ContentUserFeedback。
即將推出:我們會在 2024 年淘汰 GitHub 問題,並以全新的意見反應系統取代並作為內容意見反應的渠道。 如需更多資訊,請參閱:提交及檢視以下的意見反映: