loop

控制迴圈程序如何自動 parallelizer 考量,和 (或) 從考慮排除重複自動 vectorizer。

#pragma loop( hint_parallel(n) )

#pragma loop( no_vector )

#pragma loop( ivdep )

參數

  • hint_parallel(n)
    對編譯器的提示應該跨 n 平行處理這個迴圈執行緒,其中 n 是正整數常值或零。如果 n 是零,則執行緒數目最大值用於執行階段。這是提示加入至編譯器命令,而非,因此,並不保證迴圈會平行處理。如果迴圈有資料相依性或結構問題 (例如,在迴圈主體之外再使用迴圈的純量的迴圈存放區不會平行處理。

    除非 /Qpar 編譯器參數指定,則編譯器會忽略選項。

  • no_vector
    根據預設,自動 vectorizer 開啟並嘗試 vectorize 它評估為受益於它的所有迴圈。指定此 pragma 停用自動 vectorizer 其後的重複。

  • ivdep
    會忽略此的向量相依性的編譯器的提示進行迴圈。與 hint_parallel搭配使用此選項。

備註

若要使用 loop 附註,請將它立即在沒有重複定義之前。pragma 起其後迴圈的範圍的效果。您可以套用多個 pragma 到迴圈,以任何順序,不過,您必須在陳述式會在個別的 pragma 陳述式。

請參閱

參考

自動平行處理錯誤和警告

Pragma 指示詞 」 和 「 __Pragma 關鍵字