AcademySoftwareFoundation / AcademySoftwareFoundation/OpenShadingLanguage
[BUG] Bad parallel performance when optimizing a group
- Lingua principale
- C++
- Stelle
- 2.3k
- Fork
- 414
- Merge medio
- 3g 1h
- PR unite (30g)
- 10
Descrizione
**Describe the bug**
In Windows, when optimizing a shader group in parallel, the performance is almost as the optimization is performed sequentially.
I tracked down the problem, in src\liboslexec\llvm_instance.cpp.
In the block inside if (use_rs_bitcode()) {
the call to ll.validate_global_mappings(names_of_unmapped_globals); triggers a global lock inside llvm.
commenting out the validation solves the problem. A possible solution would be to have an option to turn off validation, so I can turn it on only during debugging.
**OSL version and dependencies**
* OSL branch/version: 1.14.5.1
* OS: Windows
* C++ compiler: MSVC 2022
* LLVM version: 19.1.7
* OIIO version: 3.0.2
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia in src/liboslexec/llvm_instance.cpp, nel blocco use_rs_bitcode(), e ispeziona la chiamata ll.validate_global_mappings(names_of_unmapped_globals). Traccia il modo in cui i gruppi shader vengono ottimizzati in parallelo su Windows, quindi verifica che la validazione possa essere disabilitata per l’ottimizzazione normale e mantenuta durante il debug senza l’impatto sulle prestazioni di un’esecuzione quasi sequenziale.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- cpp
- Ambito
- compilers, performance
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 45/100