Por favor, use este identificador para citar o enlazar este ítem:https://uvadoc.uva.es/handle/10324/65575
Título
OpenCLIPER: An OpenCL-Based C++ Framework for Overhead-Reduced Medical Image Processing and Reconstruction on Heterogeneous Devices
Autor
Año del Documento
2019
Editorial
IEEE
Descripción
Producción Científica
Documento Fuente
IEEE Journal of Biomedical and Health Informatics. Julio 2019, vo. 23, n. 4, p 1702-1709.
Resumo
Este artículo describe una infraestructura basada en OpenCL que permite implementar algoritmos de cálculo masivamente paralelizables. OpenCL es un entorno de programación (lenguaje y API) que permite aprovechar las capacidades de dispositivos con gran número de núcleos de cálculo, como las GPUs, para acelerar notablemente el cálculo de este tipo de algoritmos.
Uno de los principales problemas de OpenCL es la complejidad de las tareas de preparación previas al cálculo propiamente dicho (selección del dispositivo que se va a usar y su inicialización, sincronización de los datos entre la CPU y el dispositivo de cálculo, etc.). Todas estas dificultades hacen más laborioso el uso de OpenCL de lo que sería deseable. Este artículo describe una infraestructura basada en OpenCL
(OpenCLIPER) que es capaz de utilizar dispositivos de cálculo soportados por OpenCL de forma sencilla, lo que permite al desarrollador concentrarse en la implementación del algoritmo. Nuestra infraestructura se encarga automáticamente del descubrimiento de los dispositivos disponibles y su inicialización, transferencias de datos entre el sistema de ficheros, la CPU y el dispositivo de cálculo, y la carga y compilación de kernels (el código que implementa el algoritmo). Las estructuras de datos solamente tienen que ser definidas una vez, independientemente del dispositivo de cálculo, al igual que el código que las usa. Además, se usa memoria pinned (memoria accesible por la CPU asociada de forma fija a la memoria física) para los búferes de datos para lograr la máxima velocidad en las transferencias de estos
entre la CPU y el dispositivo de cálculo escogido. Los algoritmos son implementados como operadores matemáticos con una entrada y una salida y parámetros opcionales, lo que permite encadenarlos fácilmente y de forma eficiente. Además, es posible separar las tareas de inicialización y ejecución del algoritmo, lo que conlleva mejores prestaciones al ser encadenados y/o usados en bucles.
Toda la infraestructura ha sido probada en el desarrollo de algoritmos de procesamiento de imágenes, en concreto en el procesamiento de imágenes de resonancia magnética submuestreadas.
Materias (normalizadas)
Computación de alto rendimiento (HPC)
Materias Unesco
1203.17 Informática
2209.90 Tratamiento Digital. Imágenes
Palabras Clave
C++
GPU
medical imaging
OpenCL
ISSN
2168-2194
Revisión por pares
SI
Patrocinador
Este trabajo ha sido financiado en parte por los proyectos TEC-2014-57428 y TEC2017-82408- R de MINECO y VA069U16 de la Junta de Castilla y León
Version del Editor
Propietario de los Derechos
Idioma
eng
Tipo de versión
info:eu-repo/semantics/acceptedVersion
Derechos
acceptedAccess
Aparece en las colecciones
Arquivos deste item
Exceto quando indicado o contrário, a licença deste item é descrito como Attribution-NonCommercial-NoDerivatives 4.0 Internacional