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 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應