Generating posit-based accelerators with high-level synthesis

Recently, the posit number system has demonstrated a higher accuracy over standard floating-point arithmetic for many scientific applications. However, when it comes to implementing accelerators for these applications, the tool support for this arithmetic format is still missing, especially during t...

ver descrição completa

Detalhes bibliográficos
Autores: Murillo Montero, Raúl, Del Barrio García, Alberto Antonio, Botella Juan, Guillermo, Pilato, Christian
Formato: artículo
Fecha de publicación:2023
País:España
Recursos:Universidad Complutense de Madrid (UCM)
Repositorio:Docta Complutense
Idioma:inglés
OAI Identifier:oai:docta.ucm.es:20.500.14352/102790
Acesso em linha:https://hdl.handle.net/20.500.14352/102790
Access Level:acceso abierto
Palavra-chave:004
HLS
Computer arithmetic
Posit
Floating-point
Informática (Informática)
1203 Ciencia de Los Ordenadores
Descrição
Resumo:Recently, the posit number system has demonstrated a higher accuracy over standard floating-point arithmetic for many scientific applications. However, when it comes to implementing accelerators for these applications, the tool support for this arithmetic format is still missing, especially during the step. In this paper, we incorporate the posit data type into the high-level synthesis (HLS) design process, so that we can generate the implementation directly from a given behavioral specification, but using posit numbers instead of the classical floating-point notations. Our evaluations show that, even if posit-based circuits require more area than their floating-point counterparts, they offer higher accuracy when using the same bitwidth. For example, using posit arithmetic can reduce computation errors by about two orders of magnitude when compared to using standard floating-point numbers. Our approach also includes an alternative to mitigate the high overheads of the posits and broadening the potential use of this format. We also propose a hybrid scheme that uses posit numbers only in the private local memory, while the accelerator operates in the classic floating-point notation. This solution is useful when the designers want to optimize local memories and data transfers, but still use legacy high-level synthesis (HLS) tools that only support traditional floating-point notations.