Udostępnij za pośrednictwem


loop

Określa, jak kod pętli jest uważany przez auto-parallelizer, i/lub wyklucza pętli z rozpatrzenia przez auto-vectorizer.

#pragma loop( hint_parallel(n) )

#pragma loop( no_vector )

#pragma loop( ivdep )

Parametry

  • hint_parallel(n)
    Wskazówki do kompilator, że ta pętla powinny odbywać się równolegle przez n wątków, gdzie n jest literałem dodatnią liczbą całkowitą lub zerem.Jeśli n jest równa zero, maksymalną liczbę wątków jest używany w czasie wykonywania.To jest Wskazówka do kompilatora, a nie polecenia, a nie ma żadnej gwarancji, że pętla będzie odbywać się równolegle.Jeśli pętli ma zależności danych lub strukturalnych problemów — na przykład pętli są przechowywane na wartość skalarną, który jest używany poza pętli —, a następnie pętli nie będzie obliczeń.

    Kompilator ignoruje tę opcję, jeśli nie /Qpar przełącznik kompilatora.

  • no_vector
    Domyślnie auto-vectorizer jest na i podejmie próbę vectorize wszystkie pętli, które ocenia jako korzystających z niego.Określ ten pragma wyłączyć auto-vectorizer dla pętli, która następuje.

  • ivdep
    Wskazówki do kompilatorowi ignorowanie wektor zależności dla tej pętli.Wykorzystać tę usterkę w połączeniu z hint_parallel.

Uwagi

Aby użyć loop pragma, umieść go bezpośrednio przed — nie w — definicja pętli.Pragma staje się skuteczne dla zakresu pętli, następująca po niej.Można zastosować wiele pragmy pętli, w dowolnej kolejności, ale musi określać każdego z nich w oddzielnych pragma instrukcja.

Zobacz też

Informacje

Auto wykonywania błędy i ostrzeżenia

Dyrektywy pragma i __Pragma słowa kluczowego