Resumen:
|
En la actualidad, las Graphics Processing Units (GPU) no sólo se dedican
a la aceleración de gráficos, sino que su uso se ha extendido a la ejecución
de aplicaciones de propósito general, surgiendo así el paradigma ...[+]
En la actualidad, las Graphics Processing Units (GPU) no sólo se dedican
a la aceleración de gráficos, sino que su uso se ha extendido a la ejecución
de aplicaciones de propósito general, surgiendo así el paradigma conocido
como General Purpose computing on Graphics Processing Units (GPGPU).
Este paradigma se concibió en un contexto donde una única aplicación disponía
de todos los recursos hardware de la GPU, al contrario que las Central
Processing Units (CPU) donde se utilizan planificadores para decidir qué
aplicaciones se ejecutan concurrentemente y, por tanto, comparten los recursos
del sistema. Por este motivo, las GPU actuales no ofrecen un soporte
adecuado a la ejecución concurrente de aplicaciones, lo cual y tal y como se
demuestra en este trabajo, puede tener un impacto significativo en la utilización
de sus recursos computacionales y, por ende, en las prestaciones finales
del sistema.
En este trabajo se caracterizan una serie de aplicaciones científicas GPGPU,
mostrando diferencias que pueden superar un orden de magnitud en
el uso de recursos como el ancho de banda de memoria o las unidades de
cómputo. Para estudiar la sensibilidad de las aplicaciones a la contención
en el acceso los recursos compartidos, se han desarrollado microbenchmarks
que interfieren en el uso de estos recursos. Los resultados demuestran que
estas interferencias pueden llegar en algunos casos a incrementar el tiempo
de ejecución de la aplicación bajo estudio hasta un 80 %.
Con el objetivo de mejorar el soporte de las GPU a la ejecución concurrente
así como las prestaciones de las aplicaciones que comparten la GPU,
se propone una estructura para la planificación de aplicaciones. Se trata de
una estructura que controla el uso de la GPU por parte de las aplicaciones
para facilitar la implementación de algoritmos de planificación efectivos. Sobre
esta estructura, y en base a los resultados de la caracterización, se ha
desarrollado el algoritmo de planificación SHARK propuesto en este trabajo,
el cual trata de minimizar las interferencias en la jerarquía de memoria.
Los experimentos realizados muestran que SHARK mejora las prestaciones
de la ejecución concurrente en comparación un algoritmo de planificación
agnóstico a las interferencias, siendo sus ventajas más evidentes cuanto mayor
es el nivel de paralelismo. En algunos casos se alcanzan aceleraciones
superiores al 40 %.
[-]
Nowadays, Graphics Processing Units (GPUs) are not only used for graphics acceleration but they are also being employed in general purpose computing. As a result, the General Purpose computing on Graphics Processing Units ...[+]
Nowadays, Graphics Processing Units (GPUs) are not only used for graphics acceleration but they are also being employed in general purpose computing. As a result, the General Purpose computing on Graphics Processing Units (GPGPU) paradigm emerged.
This paradigm was initially developed in a context where a single application had available all the GPU's hardware resources. In constrast, Central Processing Units (CPUs) are managed by schedulers that select which applications run concurrently and thus share the system resources.
In other words, current GPUs do not provide a mature support for concurrent GPGPU applications, which impacts on resource utilization and on performance.
In this work, several GPGPU applications are characterized, presenting differences among them that can be higher than an order of magnitude in the utilization of resources like memory bandwidth or computational units.
To study application's sensitivity to shared resource contention, we develop microbenchmarks that interfere when accessing these resources. The results of the characterization study show that the execution time can grow by a 80\% in some cases.
With the aim of improving concurrent execution support in GPUs and increasing system performance, we propose a novel scheduling framework for GPUs. This framework controls the GPU usage of applications and enables the implementation of new scheduling algorithms. In this scheduling framework, we develop SHARK, a scheduling algorithm that takes into account the results of the characterization study in order to minimize interferences in the memory hierarchy and improve performance.
Experimental results show that SHARK improves concurrent execution performance when compared to an interference-agnostic algorithm and that its benefits become more evident as execution parallelism increases. In some cases, the speedup is higher than 40\%.
[-]
|