7.3 Estudio de eficiencia para el método de Superficies Activas en CPU y GPU
7.3.2 Implementación en GPU
Existen tres etapas a ser consideradas en la ejecución de un algoritmo en GPU: la copia de los datos desde la memoria principal a la memoria de GPU, la ejecución del algoritmo per se, y la copia de los resultados desde GPU a la memoria principal. La Tabla 1 muestra cómo se distribuye porcentualmente el tiempo en cada una de esas configuraciones para dos mallas con distintas cantidades de vértices en dos placas gráficas diferentes al realizar 400 iteraciones del algoritmo. Las pruebas fueron realizadas con una placa gráfica GeForce 310M (GT218) de 512MB de RAM y en una GeForce GTX 550 Ti de 1024MB. En todas ellas la configuración del algoritmo fue a=b=50, p=10, q=1, k=7, r=1 y ∆t=0.001. Tal como puede apreciarse el tiempo de copia de CPU a GPU (y viceversa) resulta prácticamente despreciable ya que, por la forma en que el algoritmo fue adaptado, solo se realizan copias entre ambas memorias al comienzo y al final del proceso, pero no durante la ejecución de los cálculos.
Placa gráfica
Tiempos (mseg) para malla con Refinamiento grado 2 (26170 vértices)
Tiempos (mseg) para una malla con refinamiento grado 4 (418690 vértices)
GPU a CPU Ejecución GPU a CPU GPU a CPU Ejecución GPU a CPU
A 30 1033 1 65 15631 4
B 35 5638 1 646 95050 6
Tabla 1: Comparativa de tiempos al ejecutar 400 iteraciones del algoritmo en GPU sobre dos mallas con distintas cantidades de vértices y en dos GPUs diferentes. Placa A: GeForce GTX 550 Ti de 1024MB de RAM. Placa B: GeForce 310M (GT218) de 512MB de RAM.
Uno de los análisis que resulta de sumo interés para comparar la performance de las implementaciones en GPU y CPU, es la evolución de los tiempos de procesamiento para cada
una cuando varía la cantidad de vértices de la malla. En la Figura 41 se presentan las curvas resultantes de este análisis. Como puede observarse, a medida que aumenta el grado de refinamiento de la malla (y consecuentemente la cantidad de vértices) la mejora en los tiempos de cálculo se incrementa notablemente. La Tabla 2 incluye los datos representados en esta curva, donde puede apreciarse el Speed Up para cada una de las mallas procesadas.
Grado de Refinamiento Cantidad de Vértices Tiempo serial CPU (mseg) Tiempo GPU (mseg) Speed Up 1 6544 1956 330 5,92 2 26170 11979 1140 10,5 3 104674 65253 4217 15,47 4 418690 296614 16122 18,39
Tabla 2: Tiempos de cálculo en GPC y CPU para mallas con distinta cantidad de vértices. Los valores corresponden al gráfico de la Figura 41.
En la Figura 42 puede observarse una curva similar a la anterior, pero correspondiente a una variación en la cantidad de iteraciones. La gráfica refleja una relación lineal entre la cantidad de iteraciones y el tiempo de procesamiento en ambos casos. La diferencia entre las curvas radica en su pendiente: como es de esperarse, la pendiente es en ambos casos positiva; sin embargo, la que corresponde a la curva de curva GPU es mucho más pequeña que la de CPU.
Figura 41: Comparativa de los tiempos de procesamiento en GPU y en CPU al variar el grado de refinamiento de la malla realizando 400 iteraciones. Los tiempos fueron tomados utilizando una GPU GeForce GTX 550 Ti 1024MB y un CPU Intel Core i5 M450 2.40GHz con 4GB de RAM al realizar 400 iteraciones del algoritmo de Superficies Activas.
Figura 42: Comparativa de los tiempos de procesamiento en GPU y en CPU al variar la cantidad de iteraciones para una malla de generada con un refinamiento de grado 3 (104674 vértices). Los tiempos fueron tomados utilizando una GPU GeForce GTX 550 Ti 1024MB y un CPU Intel Core i5 M450 2.40GHz con 4GB de RAM al realizar 400 iteraciones del algoritmo de Superficies Activas.
7.4 Medición de la calidad de la segmentación
Para realizar la medición de la calidad de las segmentaciones obtenidas, se utilizó el método descripto en la Sección 4.5.1. En este apartado, se exponen algunas mediciones realizadas haciendo uso del indicador (ICS) mencionado, que demuestran cómo mejora la calidad de los resultados al procesar con Modelos Deformables el resultado generado por el algoritmo de Crecimiento de Regiones.
Figura 43: Evolución del modelo deformable a partir de la malla resultante del Crecimiento de Regiones (amarillo). El Ground Truth es mostrado en color verde y en naranja/rojo los sucesivos estados intermedios de evolución para 10, 20, 50, 100 y 200 iteraciones.
La Figura 43 muestra, en un corte transversal de la MRI, los resultados parciales del proceso de segmentación mediante superficies activas. En dicha imagen puede observarse la malla escalonada obtenida a partir del algoritmo de Crecimiento de Regiones (amarillo). Además, se incluyen las etapas intermedias en el proceso de evolución del modelo deformable sometido a las fuerzas internas y externas con 10, 20, 50, 100, 150, 200 y 300 iteraciones, los cuales se van acercando al Ground Truth (verde). El gráfico de la Figura 44 corrobora el incremento en la calidad de la segmentación a medida que la malla es deformada, con un crecimiento cuasi-lineal hasta las 200 iteraciones y disminuyendo su pendiente a partir de ese valor, marcando una convergencia a un valor cercano a 0.93.
Tal como se ha descripto en la Sección 4.5.1, el Ground Truth generado por TumorSim es expresado en forma de volúmenes difusos (matrices con la probabilidad espacial de ocurrencia de cada una de las componentes del cerebro). Para determinar una malla contra la cual comparar la calidad de la segmentación obtenida, resulta necesario umbralar dicho volumen en un valor de probabilidad predefinido. Se analizó entonces la influencia de los distintos valores de probabilidad máxima al comparar la calidad de una segmentación particular contra los diferentes Ground Truth generados al umbralar dichos volúmenes en los valores de probabilidad de ocurrencia del tumor 0.1, 0.2, 0.3 y 0.4. No se procesaron los resultados a partir del 0.4 por presentar huecos en el interior de la región de interés.
Figura 44: Evolución de la calidad de la segmentación considerando un Ground Truth generado con umbral de probabilidad 0.3. La iteración 0 corresponde a la salida generada por el algoritmo de
Crecimiento de Regiones. Posteriormente, puede observarse cómo evoluciona la calidad de la segmentación al incrementar la cantidad de iteraciones, convergiendo un valor cercano a 0.93
Tal como puede observarse en el gráfico de la Figura 45, para una configuración dada del algoritmo de segmentación, los resultados cambian en función del umbral de probabilidad considerado a la hora de extraer la malla de referencia a partir del Ground Truth, tal como fuera explicado en la Sección 4.5.1.
Figura 45: Evolución del ICS utilizando mallas de referencia generadas a partir del umbralado del Ground Truth probabilistico en 0.1, 0.2, 0.3 y 0.4 para una misma configuración del algoritmo de segmentación.
En la Figura 46 se visualiza, en distintas formas, el resultado de la segmentación por medio del esquema propuesto (color verde) junto al Ground Truth generado por el simulador (color naranja).
Figura 46: Comparativa entre el Ground Truth (naranja) y la malla generada (verde) por medio del esquema de segmentación propuesto para un tumor cerebral. Se muestran distintas visualizaciones para el mismo caso. (Izq) Modo Wirframe (Centro) Superficie completa opaca (Der) Superficie completa con transparencia. Las visualizaciones fueron realizadas usando el software MITK 3M310.