Nel modello di esecuzione OpenCL (astratto), sì, tutte le voci di lavoro vengono eseguite in parallelo e possono essere milioni di esse.
All'interno di una GPU, tutti gli elementi di lavoro dello stesso gruppo di lavoro devono essere eseguiti su un singolo "core". Ciò pone una restrizione fisica al numero di elementi di lavoro per gruppo di lavoro (256 o 512 è il massimo, ma può essere più piccolo per grossi kernel usando molti registri). Tutti i gruppi di lavoro vengono quindi pianificati sui (solitamente da 2 a 16) core della GPU.
È possibile sincronizzare i thread (elementi di lavoro) all'interno di un gruppo di lavoro, poiché sono tutti residenti nello stesso core, ma non è possibile sincronizzare i thread da gruppi di lavoro diversi, poiché potrebbero non essere pianificati contemporaneamente, e potrebbe essere eseguito su diversi core.
Sì, è possibile avere 128 elementi di lavoro all'interno di un gruppo di lavoro, a meno che non utilizzi troppe risorse. Per ottenere le massime prestazioni, in genere si desidera avere il maggior numero possibile di thread in un gruppo di lavoro (almeno 64 sono necessari per nascondere la latenza della memoria, vedere Vasily Volkov's presentations su questo argomento).
fonte
2012-01-23 23:58:31
Sei sicuro che ci siano sempre più oggetti di lavoro in esecuzione come i tuoi core disponibili? Secondo [questa pagina] (http://software.intel.com/sites/products/documentation/ioclsdk/2013/OG/Basic_Concepts.htm), i core separati sono unità di calcolo, il che significherebbe che un core non corrisponde qualsiasi modo per un oggetto di lavoro. – HelloGoodbye
Sono sicuro di questo. È vero che potrebbero esserci più elementi di lavoro "in volo" di quanti siano i core della CPU - questo è in realtà il gruppo di lavoro. In termini di calcolo simultaneo, un core CPU può eseguire solo una coda di istruzioni in un dato momento. Anche nelle applicazioni non opencl, il threading è falso tramite il cambio di contesto, oppure è realizzato tramite hardware core multiplo (e talvolta con funzionalità SIMD limitata). – mfa