Accelerating SpMV on HBM-equipped FPGAs: hardware-software co-design and collaboration
(English) SpMV is a key linear algebra kernel at the core of many algorithms across multiple knowledge domains. Its memory-bound nature and its low arithmetic intensity make its efficient implementation a challenging problem. Usual mechanisms present in general-purpose microprocessors, such as cache...
| Autor: | |
|---|---|
| Tipo de recurso: | tesis doctoral |
| Fecha de publicación: | 2025 |
| País: | España |
| Institución: | Universitat Politècnica de Catalunya (UPC) |
| Repositorio: | UPCommons. Portal del coneixement obert de la UPC |
| Idioma: | inglés |
| OAI Identifier: | oai:upcommons.upc.edu:2117/449855 |
| Acceso en línea: | https://hdl.handle.net/2117/449855 https://dx.doi.org/10.5821/dissertation-2117-449855 |
| Access Level: | acceso abierto |
| Palabra clave: | FPGA SpMV HBM HLS FP64 FP32 double-precision single-precision High-performance computing Sparse matrix representation Computer architecture Iterative methods Linear algebra 004 - Informàtica Àrees temàtiques de la UPC::Informàtica |
| id |
ES_7e5a16e81871e721e92dd4e4e2ca762f |
|---|---|
| oai_identifier_str |
oai:upcommons.upc.edu:2117/449855 |
| network_acronym_str |
ES |
| network_name_str |
España |
| repository_id_str |
|
| dc.title.none.fl_str_mv |
Accelerating SpMV on HBM-equipped FPGAs: hardware-software co-design and collaboration |
| title |
Accelerating SpMV on HBM-equipped FPGAs: hardware-software co-design and collaboration |
| spellingShingle |
Accelerating SpMV on HBM-equipped FPGAs: hardware-software co-design and collaboration Oliver Segura, José FPGA SpMV HBM HLS FP64 FP32 double-precision single-precision High-performance computing Sparse matrix representation Computer architecture Iterative methods Linear algebra 004 - Informàtica Àrees temàtiques de la UPC::Informàtica |
| title_short |
Accelerating SpMV on HBM-equipped FPGAs: hardware-software co-design and collaboration |
| title_full |
Accelerating SpMV on HBM-equipped FPGAs: hardware-software co-design and collaboration |
| title_fullStr |
Accelerating SpMV on HBM-equipped FPGAs: hardware-software co-design and collaboration |
| title_full_unstemmed |
Accelerating SpMV on HBM-equipped FPGAs: hardware-software co-design and collaboration |
| title_sort |
Accelerating SpMV on HBM-equipped FPGAs: hardware-software co-design and collaboration |
| dc.creator.none.fl_str_mv |
Oliver Segura, José |
| author |
Oliver Segura, José |
| author_facet |
Oliver Segura, José |
| author_role |
author |
| dc.subject.none.fl_str_mv |
FPGA SpMV HBM HLS FP64 FP32 double-precision single-precision High-performance computing Sparse matrix representation Computer architecture Iterative methods Linear algebra 004 - Informàtica Àrees temàtiques de la UPC::Informàtica |
| topic |
FPGA SpMV HBM HLS FP64 FP32 double-precision single-precision High-performance computing Sparse matrix representation Computer architecture Iterative methods Linear algebra 004 - Informàtica Àrees temàtiques de la UPC::Informàtica |
| description |
(English) SpMV is a key linear algebra kernel at the core of many algorithms across multiple knowledge domains. Its memory-bound nature and its low arithmetic intensity make its efficient implementation a challenging problem. Usual mechanisms present in general-purpose microprocessors, such as cache memories, become useless without further data transformation as the size of the problem grows beyond the capacity of the cache. The capability of FPGAs to generate application-specific logic and memory hierarchies results in performant and energy-efficient designs. This has made them an interesting alternative when trying to efficiently implement SpMV. The push by vendors to position them as HPC accelerators and the inclusion of HBM in the last generations of boards have increased this trend. Most SpMV implementations for FPGAs allow to work exclusively using single-precision floating-point arithmetic, while in the context of HPC applications, double-precision floating-point arithmetic is usually required. CSR or slightly modified versions of it are usually used as the basis for these implementations. This limits inter and intra-row parallelism due to conflicts in memory accesses, requiring the implementation to include complex logic such as arbitration or stall/retry mechanisms or to use replicated memories, increasing resource usage and limiting the scalability of the designs. This thesis presents two proposals to leverage the features offered by FPGAs, especially HBM and customizable memory hierarchies, to further improve the achieved performance and, in the case of the second proposal, allowing for a precision-agnostic design that can be synthesized to work with different arithmetic types as required. The first proposal consists of a double-precision FPGA co-designed SpMV accelerator and matrix representation. Instead of using CSR as the basis, the representation and the accelerator are defined considering all the advanced features that FPGAs offer, in a co-design approach. This approach allows maximization of inter-row and intra-row parallelism by allowing simultaneous processing of several matrix values per cycle in a fully pipelined fashion without requiring complex logic or memory replication. The proposed matrix representation allows the easy partitioning of work among different accelerators and the efficient use of HBM bandwidth. The evaluation shows that the proposed implementation outperforms state-of-the-art implementations in terms of absolute, bandwidth-relative, and energy-relative performance. The second proposal builds on the first one, increasing its arithmetic efficiency. It does so in different ways. In the first place, it improves the efficiency of the proposed encoding by reducing the amount of metadata required to process the matrix. In the second place, it increases the useful data ratio of the transformed representation by considering new hierarchical abstractions within the matrix. In the third place, it repurposes zero-padding, when present, to act as a carrier of useful data. This proposal is highly parametrizable, including the possibility of using it to generate designs working with different data types without requiring more changes than setting the desired data type at compile time. The evaluation shows that this proposal significantly improves over the first one in double-precision arithmetic. Single-precision results demonstrate its capability to improve the performance offered by state-of-the-art designs that use much higher bandwidth. |
| publishDate |
2025 |
| dc.date.none.fl_str_mv |
2025 2025-11-28 2026 2026-01-09 |
| dc.type.none.fl_str_mv |
doctoral thesis http://purl.org/coar/resource_type/c_db06 VoR http://purl.org/coar/version/c_970fb48d4fbd8a85 |
| dc.type.openaire.fl_str_mv |
info:eu-repo/semantics/doctoralThesis |
| format |
doctoralThesis |
| dc.identifier.none.fl_str_mv |
https://hdl.handle.net/2117/449855 https://dx.doi.org/10.5821/dissertation-2117-449855 |
| url |
https://hdl.handle.net/2117/449855 https://dx.doi.org/10.5821/dissertation-2117-449855 |
| dc.language.none.fl_str_mv |
Inglés eng |
| language_invalid_str_mv |
Inglés |
| language |
eng |
| dc.rights.none.fl_str_mv |
open access http://purl.org/coar/access_right/c_abf2 Attribution-NonCommercial-ShareAlike 4.0 International http://creativecommons.org/licenses/by-nc-sa/4.0/ |
| dc.rights.openaire.fl_str_mv |
info:eu-repo/semantics/openAccess |
| rights_invalid_str_mv |
open access http://purl.org/coar/access_right/c_abf2 Attribution-NonCommercial-ShareAlike 4.0 International http://creativecommons.org/licenses/by-nc-sa/4.0/ |
| eu_rights_str_mv |
openAccess |
| dc.format.none.fl_str_mv |
application/pdf |
| dc.publisher.none.fl_str_mv |
Universitat Politècnica de Catalunya |
| publisher.none.fl_str_mv |
Universitat Politècnica de Catalunya |
| dc.source.none.fl_str_mv |
reponame:UPCommons. Portal del coneixement obert de la UPC instname:Universitat Politècnica de Catalunya (UPC) |
| instname_str |
Universitat Politècnica de Catalunya (UPC) |
| reponame_str |
UPCommons. Portal del coneixement obert de la UPC |
| collection |
UPCommons. Portal del coneixement obert de la UPC |
| repository.name.fl_str_mv |
|
| repository.mail.fl_str_mv |
|
| _version_ |
1869411729661755392 |
| spelling |
Accelerating SpMV on HBM-equipped FPGAs: hardware-software co-design and collaborationOliver Segura, JoséFPGASpMVHBMHLSFP64FP32double-precisionsingle-precisionHigh-performance computingSparse matrix representationComputer architectureIterative methodsLinear algebra004 - InformàticaÀrees temàtiques de la UPC::Informàtica(English) SpMV is a key linear algebra kernel at the core of many algorithms across multiple knowledge domains. Its memory-bound nature and its low arithmetic intensity make its efficient implementation a challenging problem. Usual mechanisms present in general-purpose microprocessors, such as cache memories, become useless without further data transformation as the size of the problem grows beyond the capacity of the cache. The capability of FPGAs to generate application-specific logic and memory hierarchies results in performant and energy-efficient designs. This has made them an interesting alternative when trying to efficiently implement SpMV. The push by vendors to position them as HPC accelerators and the inclusion of HBM in the last generations of boards have increased this trend. Most SpMV implementations for FPGAs allow to work exclusively using single-precision floating-point arithmetic, while in the context of HPC applications, double-precision floating-point arithmetic is usually required. CSR or slightly modified versions of it are usually used as the basis for these implementations. This limits inter and intra-row parallelism due to conflicts in memory accesses, requiring the implementation to include complex logic such as arbitration or stall/retry mechanisms or to use replicated memories, increasing resource usage and limiting the scalability of the designs. This thesis presents two proposals to leverage the features offered by FPGAs, especially HBM and customizable memory hierarchies, to further improve the achieved performance and, in the case of the second proposal, allowing for a precision-agnostic design that can be synthesized to work with different arithmetic types as required. The first proposal consists of a double-precision FPGA co-designed SpMV accelerator and matrix representation. Instead of using CSR as the basis, the representation and the accelerator are defined considering all the advanced features that FPGAs offer, in a co-design approach. This approach allows maximization of inter-row and intra-row parallelism by allowing simultaneous processing of several matrix values per cycle in a fully pipelined fashion without requiring complex logic or memory replication. The proposed matrix representation allows the easy partitioning of work among different accelerators and the efficient use of HBM bandwidth. The evaluation shows that the proposed implementation outperforms state-of-the-art implementations in terms of absolute, bandwidth-relative, and energy-relative performance. The second proposal builds on the first one, increasing its arithmetic efficiency. It does so in different ways. In the first place, it improves the efficiency of the proposed encoding by reducing the amount of metadata required to process the matrix. In the second place, it increases the useful data ratio of the transformed representation by considering new hierarchical abstractions within the matrix. In the third place, it repurposes zero-padding, when present, to act as a carrier of useful data. This proposal is highly parametrizable, including the possibility of using it to generate designs working with different data types without requiring more changes than setting the desired data type at compile time. The evaluation shows that this proposal significantly improves over the first one in double-precision arithmetic. Single-precision results demonstrate its capability to improve the performance offered by state-of-the-art designs that use much higher bandwidth.(Català) SpMV és un kernel d'àlgebra lineal inclòs en nombrosos algoritmes en múltiples dominis de coneixement. La seva natura, marcada pels accessos a memòria i la seva baixa intensitat aritmètica, fa que la seva implementació sigui un repte. Els mecanismes usualment presents als microprocessadors de propòsit general, com les memòries cau, son inútils sense transformacions addicionals a les dades a mesura que la mida del problema creix més enllà de la capacitat de la cau. La capacitat de les FPGAs de generar lògica i jerarquies de memòria específiques per a cada aplicació dona com a resultat dissenys d'alt rendiment i energèticament eficients. Això les ha convertit en una alternativa interessant per a la implementació d'SpMV. L'esforç dels fabricants per posicionar-les com acceleradores per a HPC i la inclusió d'HBM en les darreres generacions de dispositius ha incrementat aquesta tendència. Moltes implementacions d'SpMV per a FPGAs treballen exclusivament amb aritmètica de coma flotant en simple precisió mentre que, en les aplicacions HPC, usualment es requereix doble precisió. CSR o versions lleugerament modificades d'aquesta representació són usades habitualment com la base per a aquestes implementacions. Això limita el paral·lelisme inter i intra-fila degut a conflictes als accessos a memòria, requerint que la implementació inclogui lògica complexa com arbitratge o mecanismes per aturar/reintentar, o memòries replicades, incrementant l'ús de recursos i limitant l'escalabilitat dels dissenys. Aquesta tesi presenta dues propostes per aprofitar les característiques ofertes per les FPGAs, especialment HBM i les jerarquies de memòria adaptables, per tal de millorar el rendiment assolit i, en el cas de la segona proposta, permetent un disseny agnòstic pel que fa a la precisió del tipus de dades. La primera proposta consisteix en un co-disseny d'accelerador d'SpMV de doble precisió per a FPGA i una representació per a la matriu. En comptes d'utilitzar CSR com la base, aquesta representació i l'accelerador estan definits tenint en compte totes les característiques avançades que les FPGAs ofereixen, en una aproximació basada en el co-disseny. Aquesta aproximació permet maximitzar el paral·lelisme inter-fila i intra-fila permetent el processat simultani de múltiples valors de la matriu per cicle de manera completament segmentada sense requerir lògica complexa ni replicació de memòria. La representació proposada per a la matriu permet particionar fàcilment el treball entre múltiples acceleradors i l'ús eficient de l'ample de banda de l'HBM. L'avaluació mostra que la implementació proposada supera el rendiment d'implementacions considerades estat-de-l'art en termes de rendiment absolut, relatiu a l'ample de banda i relatiu al consum d'energia. La segona proposta es construeix a partir de la primera, incrementant la seva eficàcia aritmètica. Això es realitza mitjançant diferents mètodes. En primer lloc, es millora l'eficiència de la codificació proposada reduint la quantitat de metadades requerides per tal de processar la matriu. En segon lloc, s'incrementa el ràtio de dades útils de la representació al considerar noves abstraccions jeràrquiques dintre de la matriu. En tercer lloc, s'utilitza el padding de zeros, quan aquest és necessari, per actuar com a transport de dades útils. Aquesta proposta és altament parametritzable, incloent la possibilitat de fer-la servir per generar dissenys que treballen amb diferents tipus de dades sense requerir més adaptació que canviar al tipus de dades desitjat en temps de compilació. L'avaluació mostra que aquesta proposta millora significativament la primera en el cas d'aritmètica de doble precisió. Els resultats en simple precisió demostren la seva capacitat per millorar el rendiment assolit per dissenys considerats estat-de-l'art que fan servir un ample de banda molt superior.(Español) SpMV es un kernel de álgebra lineal incluido en numerosos algoritmos en múltiples dominios de conocimiento. Su naturaleza, marcada por los accesos a memoria y su baja intensidad aritmética, hace que su implementación eficiente sea un reto. Los mecanismos usualmente presentes en los microprocesadores de propósito general, como las memorias cache, son inútiles sin transformaciones adicionales en los datos a medida que el tamaño del problema crece más allá de la capacidad de la cache. La capacidad de las FPGAs de generar lógica y jerarquías de memoria específicas para cada aplicación da como resultado diseños de alto rendimiento y energéticamente eficientes. Esto las ha convertido en una alternativa interesante para la implementación de SpMV. El esfuerzo de los fabricantes por posicionarlas como aceleradores para HPC y la inclusión de HBM en las últimas generaciones de tarjetas han incrementado esta tendencia. Muchas implementaciones de SpMV para FPGAs trabajan exclusivamente con aritmética de coma flotante en simple precisión mientras que, en las aplicaciones HPC, usualmente se requiere doble precisión. CSR o versiones ligeramente modificadas de esta representación son usadas habitualmente como la base para estas implementaciones. Esto limita el paralelismo inter e intra-fila debido a conflictos en los accesos a memoria, requiriendo que la implementación incluya lógica compleja como arbitraje o mecanismos para parar/reintentar, o memorias replicadas, incrementando el uso de recursos y limitando la escalabilidad de los diseños. Esta tesis presenta dos propuestas para aprovechar las características ofrecidas por las FPGAs, especialmente HBM y las jerarquías de memoria adaptables, para mejorar el rendimiento alcanzado y, en el caso de la segunda propuesta, permitiendo un diseño agnóstico en cuanto a la precisión del tipo de datos. La primera propuesta consiste en un co-diseño de acelerador de SpMV de doble precisión para FPGA y una representación para la matriz. En lugar de usar CSR como la base, esta representación y el acelerador están definidos teniendo en cuenta todas las características avanzadas que las FPGAs ofrecen, en un aproximación basada en el co-diseño. Esta aproximación permite maximizar el paralelismo inter-fila e intra-fila permitiendo el proceso simultáneo de múltiples valores de la matriz por ciclo de manera completamente segmentada sin requerir lógica compleja ni replicación de memoria. La representación propuesta para la matriz permite particionar fácilmente el trabajo entre múltiples aceleradores y el uso eficiente del ancho de banda de la HBM. La evaluación muestra que la implementación propuesta supera el rendimiento de implementaciones consideradas estado-del-arte en términos de rendimiento absoluto, relativo al ancho de banda y relativo al consumo de energía. La segunda propuesta se construye a partir de la primera, incrementando su eficiencia aritmética. Esto se realiza mediante diferentes métodos. En primer lugar, se mejora la eficiencia de la codificación propuesta reduciendo la cantidad de metadatos requeridos para procesar la matriz. En segundo lugar, se incrementa el ratio de datos útiles de la representación al considerar nuevas abstracciones jerárquicas dentro de la matriz. En tercer lugar, se utiliza el padding de ceros, cuando este es necesario, para actuar como transporte de datos útiles. Esta propuesta es altamente parametrizable, incluyendo la posibilidad de utilizarla para generar diseños que trabajan con diferentes tipos de datos sin requerir más adaptación que cambiar al tipo de dato deseado en tiempo de compilación. La evaluación muestra que esta propuesta mejora significativamente la primera en el caso de aritmética de doble precisión. Los resultados en simple precisión demuestran su capacidad para mejorar el rendimiento alcanzado por diseños considerados estado-del-arte que disponen de un ancho de banda muy superior.Universitat Politècnica de Catalunya20252025-11-2820262026-01-09doctoral thesishttp://purl.org/coar/resource_type/c_db06VoRhttp://purl.org/coar/version/c_970fb48d4fbd8a85info:eu-repo/semantics/doctoralThesisapplication/pdfhttps://hdl.handle.net/2117/449855https://dx.doi.org/10.5821/dissertation-2117-449855reponame:UPCommons. Portal del coneixement obert de la UPCinstname:Universitat Politècnica de Catalunya (UPC)Inglésengopen accesshttp://purl.org/coar/access_right/c_abf2Attribution-NonCommercial-ShareAlike 4.0 Internationalhttp://creativecommons.org/licenses/by-nc-sa/4.0/info:eu-repo/semantics/openAccessoai:upcommons.upc.edu:2117/4498552026-05-27T15:37:01Z |
| score |
15,812429 |