Je construis un réseau de neurones fonctionnant sur un FPGA, et la dernière pièce du puzzle exécute une fonction sigmoïde dans le matériel. C'est:Calculer e^x pour les valeurs flottantes dans System Verilog?
1/(1 + e^-x)
ou
(atan(x) + 1)/2
Malheureusement, x est une valeur flottante ici (une valeur real
dans SystemVerilog).
Existe-t-il des conseils sur l'implémentation de l'une de ces fonctions dans SystemVerilog?
Cela m'embrouille vraiment car ces deux fonctions sont complexes et je ne sais même pas par où commencer à les implémenter en raison de la complexité supplémentaire des valeurs flottantes.
Pour quels FPGA concevez-vous? A-t-il des ressources DSP? – Hida
Utilisez un bloc DSP sur votre FPGA pour calculer la fonction sigmoïde. – noobuntu
Quelles sont les exigences de latence et de débit? Cela influencerait fortement tout ce que je concevrais pour cela. De plus, je ne connais pas d'outil FPGA capable de synthétiser un réel (float) en matériel (il peut exister, mais c'est assez récent si c'est le cas). – hops