CaTMU
Mi trabajo sobre el algoritmo Suppose me llevó a investigar a fondo las herramientas disponibles en la GPU. En general, en la GPU es preferible realizar cálculos antes que utilizar una LUT (Lookup Table), salvo ciertos casos.
Un nuevo requerimiento de PySuppose limitó la posiblidad de hacer cálculos, obligandome a buscar una solución por el camino de la LUT. Encontré entonces un poderoso recurso de la GPU: la Unidad de Mapeo de Texturas. Una pieza de hardware incorporado en la GPU con la capacidad de acceder de forma eficiente y cacheada a la memoria, interpolar valores y devolver resultados.






Decidí armar un paquete externo a PySuppose para explorar esta herramienta y validar los resultados obtenidos (por ejemplo caracterizar el error cometido). Durante el desarrollo cambié la forma en que me comunicaba con la GPU, facilitando el multithreading posterior y con ello el uso de múltiples tarjetas.
PySuppose y su librería significó para el algoritmo Suppose una reducción de tiempos en un factor 80. CaTMU redujo esos nuevos tiempos 10 veces más.



Para mi agrado, este nuevo paquete externo a PySuppose sirvió para propósitos que no esperaba. CaTMU fue combinado con técnicas de deep learning, Suppose y Compressed Sensing en un nuevo trabajo a cargo de Axel Lacapmesure, cuya publicación ya pasó el peer review y se encuentra en post-producción.