loop
pragma
Určuje, jak se má kód smyčky považovat za automatický paralelizátor, nebo vyloučí smyčku z hlediska automatického vektorizátoru.
Syntaxe
#pragma loop( hint_parallel(
n) )
#pragma loop( no_vector )
#pragma loop( ivdep )
Parametry
hint_parallel(
n )
Tip kompilátoru, že by tato smyčka měla být paralelizována napříč n vlákny, kde n je kladné celé číslo literál nebo nula. Pokud n je nula, použije se maximální počet vláken za běhu. Jedná se o nápovědu kompilátoru, nikoli příkazu. Neexistuje žádná záruka, že smyčka bude paralelizována. Pokud smyčka obsahuje závislosti dat nebo strukturální problémy, nebude paralelizována. Například není paralelizována, pokud se ukládá do skaláru, který se používá mimo tělo smyčky.
Kompilátor tuto možnost ignoruje, pokud není zadán přepínač kompilátoru /Qpar
.
no_vector
Ve výchozím nastavení se automatický vektorizátor pokusí vektorizovat všechny smyčky, které vyhodnocuje, z něj může těžit. pragma Tuto možnost zadejte, pokud chcete zakázat automatický vektorizátor smyčky, která následuje.
ivdep
Nápovědu kompilátoru k ignorování vektorových závislostí pro tuto smyčku.
Poznámky
Chcete-li použít loop
pragma, umístěte jej bezprostředně před, ne do definice smyčky. Účinek pragma se projeví pro rozsah smyčky, která se za ním řídí. U smyčky můžete použít více pragma direktiv v libovolném pořadí, ale každý z nich musíte uvést v samostatném pragma příkazu.
Viz také
Automatická paralelizace a automatická vektorizace
Pragma direktivy a __pragma
_Pragma
klíčová slova