ID del artículo: 000097576 Tipo de contenido: Compatibilidad Última revisión: 16/05/2024

¿Por qué el resultado de oneAPI FPGA hardware es inconsistente con el resultado de la emulación para la división de punto flotante?

Entorno

    Intel® Quartus® Prime Pro Edition
BUILT IN - ARTICLE INTRO SECOND COMPONENT
Descripción

Si hay una operación de división de punto flotante en su diseño de oneAPI, es posible que encuentre resultados inconsistentes entre el hardware de oneAPI FPGA y el emulador debido a que los dos modos de compilación tienen diferentes modos de redondeo de las operaciones de punto flotante.

A continuación se muestra un ejemplo de código y resultado:

Código: float res = 1.0f/1272;

Resultado de salida: el resultado del emulador es 0.000786163, pero el resultado de hardware es 0.000786164

Resolución

Para evitar este problema, debe utilizar la opción "-fp-model=precise -no-fma" y "-Xsrounding=ieee" en el comando de compilación.

Ejemplo de comando:

icpx -fsycl -fintelfpga -Xshardware -Xsrounding=ieee -fp-model= precise -no-fma <source_file>.cpp

Esta información está programada para agregarse en una versión futura de la Guía de optimización de FPGA para la guía de usuario de oneAPI Toolkits.

Productos relacionados

Este artículo se aplica a 1 productos

Intel® Stratix®

1

El contenido de esta página es una combinación de traducción humana y automática del contenido original en inglés. Este contenido se proporciona únicamente para su comodidad como información general y no debe considerarse como completo o preciso. Si hay alguna contradicción entre la versión en inglés de esta página y la traducción, prevalecerá la versión en inglés. Consulte la versión en inglés de esta página.