Untitled - Departamento de Ciencias e Ingeniería de la Computación
Untitled - Departamento de Ciencias e Ingeniería de la Computación
Untitled - Departamento de Ciencias e Ingeniería de la Computación
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
1 Introducción<br />
Antes <strong>de</strong> explicar que es un sha<strong>de</strong>r necesitamos enten<strong>de</strong>r cómo trabaja el pipeline gráfico y cómo ha evolucionado.<br />
La existencia <strong>de</strong> los sha<strong>de</strong>rs está altamente ligada a <strong>la</strong>s restricciones que imponían los pipeline gráficos <strong>de</strong> función<br />
fija, los pre<strong>de</strong>cesores a <strong>la</strong> era <strong>de</strong> los sha<strong>de</strong>rs. Enten<strong>de</strong>r el funcionamiento <strong>de</strong>l pipeline gráfico resulta indispensable<br />
para enten<strong>de</strong>r que son los sha<strong>de</strong>rs, como funcionan y como implementarlos.<br />
Este capítulo nos explicara entre otras cosas que es un pipeline grafico, cual es el objetivo <strong>de</strong> cada una <strong>de</strong> sus partes,<br />
que es un pipeline gráfico <strong>de</strong> función fija y porque existe <strong>la</strong> necesidad <strong>de</strong> <strong>de</strong>rivar a uno programable. Para lograr<br />
enten<strong>de</strong>r todo esto necesitamos complementar esta información con un repaso breve a <strong>la</strong> historia <strong>de</strong> <strong>la</strong>s GPUs y <strong>de</strong><br />
<strong>la</strong>s tecnologías surgidas en cada una <strong>de</strong> <strong>la</strong>s generaciones <strong>de</strong> estas GPUs.<br />
1.1 Pipeline gráfico<br />
En computación, un pipeline, es un conjunto <strong>de</strong> elementos o etapas que procesan datos. Estos elementos<br />
están conectados en serie y trabajan con el propósito <strong>de</strong> que <strong>la</strong> salida <strong>de</strong> uno <strong>de</strong> los elementos sea <strong>la</strong><br />
entrada <strong>de</strong>l próximo. El objetivo <strong>de</strong>l pipeline es ejecutar los elementos en paralelo para aumentar el<br />
<strong>de</strong>sempeño.<br />
El pipeline gráfico que explicaremos a continuación es una versión simplificada <strong>de</strong> un pipeline real, abstrayendo<br />
aspectos secundarios que podrían complicar el entendimiento <strong>de</strong>l mismo. Aun así, este pipeline representa el<br />
funcionamiento básico <strong>de</strong> <strong>la</strong> mayoría <strong>de</strong> los pipelines gráficos.<br />
La cantidad <strong>de</strong> etapas con <strong>la</strong>s que se representa un pipeline gráfico pue<strong>de</strong> variar <strong>de</strong>pendiendo <strong>de</strong>l autor. El que<br />
<strong>de</strong>scribiremos contiene 4 etapas principales:<br />
Veamos cada etapa <strong>de</strong> este pipeline en <strong>de</strong>talle:<br />
Página 5