1 votos

Tiempo de representación asintótica de los copos de nieve de Koch

He publicado un artículo similar pregunta en stack-overflow, pero este puede ser un foro más apropiado ya que está más relacionado con las matemáticas que con la programación:

Actualmente estoy trabajando con el material del curso online del MIT 6.006 por diversión. Estoy en el problema #2 ( se encuentra aquí ) y tenía una pregunta sobre los cálculos del tiempo de representación asintótica para el problema del copo de nieve de Koch (problema nº 1).

Según las soluciones, cuando la CPU se encarga del renderizado y del cálculo de coordenadas, el tiempo de renderizado asintótico es más rápido que si el proceso se divide entre la CPU y la GPU. Las matemáticas tienen sentido para mí, pero ¿alguien tiene una intuición sobre por qué esto es cierto?

En mi opinión, la CPU todavía tiene que calcular las coordenadas para renderizar el copo de nieve ( $\Theta( 4^n)$ tiempo), y luego tiene que renderizar la imagen. En mi opinión, esto debería ser aditivo, no multiplicativo.

Sin embargo, las soluciones dicen que son multiplicativas, así que como cada segmento de triángulo/línea es más corto (para los dos últimos subproblemas del problema 1) el tiempo de ejecución se reduce a $\Theta\left(\left(\frac{4}{3}\right)^n\right)$ ou $\Theta(1)$ .

No soy informático estas cosas son sólo un divertido pasatiempo para mí. Agradecería mucho una respuesta de alguno de los genios que hay por ahí :)

1voto

user2397257 Puntos 6

Como se indica en los comentarios de la P.5 del conjunto de problemas, el enfoque adoptado por la CPU y la GPU es diferente.

El enfoque de la CPU (sin aceleración por hardware) consiste en calcular primero lo que hay que dibujar y luego enviarlo a la GPU para que lo dibuje. Como suponemos que el coste de rasterizar es mayor que el de reunir los segmentos de línea, el tiempo de dibujo de la imagen estará dominado por la GPU, cuyo coste será proporcional al número de píxeles que tenga que dibujar.

El enfoque GPU-CPU (con aceleración por hardware) calcula todos los triángulos, grandes y pequeños, y luego los envía a la GPU para que dibuje el triángulo grande, borre los píxeles del medio, dibuje los triángulos más pequeños, borre los píxeles innecesarios, y así sucesivamente. Dado que dibujar lleva mucho tiempo, el tiempo que la GPU tiene que dedicar a dibujar y borrar dominará la cantidad total de tiempo empleado; dado que la mayoría (asintóticamente, el 100%) de los píxeles que se dibujan se borrarán al final, la cantidad total de tiempo empleado será sustancialmente mayor que simplemente el número de píxeles que hay que dibujar realmente.

En otras palabras: el escenario de aceleración por hardware descarga la mayor parte del trabajo en la GPU, que es mucho más lenta que la CPU. Esto está bien si la CPU tiene otras cosas en las que trabajar mientras la GPU está haciendo su procesamiento; sin embargo, este no es el caso aquí; por lo tanto, la CPU sólo está desperdiciando ciclos mientras la GPU está haciendo su dibujo.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X