Diferència entre revisions de la pàgina «Processador vectorial»

m
aquesta anàlisi
m (bot: - devàrieslleres + dediverseslleres)
m (aquesta anàlisi)
== Compiladors per a processadors vectorials ==
Un compilador amb capacitat de vectoritació analitza si les instruccions situades dins dels bucles poden executar-se en paral·lel i genera codi amb instruccions vectorials. Quant més capaç sigui el compilador en vectoritzar el codi, el rendiment millorarà en la mateixa mida. En això rau la importància dels compiladors vectorials. Existeixen importants dificultats en la vectorització del codi. Aquestes dificultats rauen en les instruccions de control, especialment en les condicionals, en les dependències de dades, en les indexacions indirectes (és a dir, components de vectors o matrius que són l'índex d'altres vectors o matrius) que es resolen a temps d'execució. La indexació indirecta és un dels tractaments més comuns de les matrius disperses. Les etapes d'un compilador són les següents:
# Anàlisi lèxiclèxica.
# Anàlisi sintàcticsintàctica.
# Anàlisi semànticsemàntica (com a conseqüència d'aquestaquesta anàlisi es genera un codi intermedi).
# Optimització del codi.
# Generació de codi final.
En un compilador amb vectorització, les dues primeres fases no canvien. El codi generat a partir de l'anàlisi semànticsemàntica ha de ser codi vectorial i s'hi ha de sotmetre en la següent etapa a una sèrie d'optimitzacions diferents de les dels compiladors convencionals. Aquesta optimització vectorial afectarà, entre altres, als següents aspectes:
* Reducció de constants en compilació: Això significa que el compilador ha d'avaluar totes les expressions que pugui en temps de compilació. Aquest tipus de reducció, que habitualment s'efectua per a codi escalar, adquireix alguns nous aspectes en el codi vectorial, com per exemple evitar la inicialització d'un vector en l'execució, inicialitzant-lo completament en temps de compilació.
* Trasllat d'expressions invariants: freqüentment els bucles més interns inclouen operacions que, en determinades condicions, poden ser traslladades a una zona més externa. Aquesta acció s'anomena trasllat de codi.
6.734

modificacions