Valve ha aperto un nuovo compilatore shader per GPU AMD

Azienda di valvole offerta La mailing list degli sviluppatori Mesa ha un nuovo compilatore shader ACO per il driver Vulkan RADV, posizionabile come alternativa al compilatore shader AMDGPU utilizzato nei driver OpenGL e Vulkan RadeonSI e RADV per chip grafici AMD.
Una volta completati i test e finalizzata la funzionalità, si prevede che ACO venga offerto per l'inclusione nella composizione principale di Mesa.

Il codice proposto da Valve mira a fornire una generazione di codice quanto più ottimale possibile per gli shader delle applicazioni di gioco, oltre a raggiungere una velocità di compilazione molto elevata. Il compilatore shader di Mesa utilizza componenti LLVM, che non forniscono la velocità di compilazione desiderata e non consentono il pieno controllo del flusso di controllo, cosa che in passato ha causato gravi errori. Inoltre, allontanandosi da LLVM è possibile implementare un'analisi delle discrepanze più aggressiva e un controllo più preciso del carico dei registri, che consente di generare eseguibili più efficienti.

ACO è scritto in C++, progettato pensando alla compilazione JIT e utilizza strutture dati iterative veloci, evitando strutture basate su puntatori come elenchi collegati e catene di disuso. La rappresentazione del codice intermedio è interamente basata su SSA (Static Single Assignment) e consente l'allocazione del registro precalcolando accuratamente il registro in base allo shader.

Attualmente, solo pixel (frammenti) e shader di calcolo sono supportati sulle GPU AMD discrete (dGPU VI+). Tuttavia, ACO raccoglie già correttamente gli shader per tutti i giochi testati, inclusi gli shader complessi di Shadow of the Tomb Raider e Wolfenstein II. Il prototipo ACO proposto per il test è quasi due volte più veloce del compilatore shader AMDGPU in termini di velocità di compilazione e mostra un aumento degli FPS in alcuni giochi quando vengono eseguiti su sistemi con il driver RADV.

Valve ha aperto un nuovo compilatore shader per GPU AMD

Valve ha aperto un nuovo compilatore shader per GPU AMD

Fonte: opennet.ru

Aggiungi un commento