Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Responsable Qt & Livres

    Xilinx propose Vitis pour faciliter la programmation de FPGA
    Un FPGA n'est pas un processeur comme les autres à programmer : on ne travaille pas avec des instructions, mais directement avec des portes logiques. Ainsi, il faut utiliser d'autres technologies pour programmer un FPGA : avec le même code, cependant, on aura déjà fait un grand pas vers la conception complète d'un processeur. Le domaine dispose de deux langages principaux : Verilog et VHDL. Aucun des deux n'est vraiment très apprécié dans la communauté, surtout par les habitués des langages de programmation de plus haut niveau…


    C'est pourquoi Xilinx développe un nouvel ensemble d'outils pour faciliter la programmation de FPGA, sous le nom de Vitis. Ces outils seront disponibles dès le 1er novembre, selon Xilinx, en supplément de Vivado. Vitis contient notamment des bibliothèques précodées, mais aussi un compilateur C et C++ (voire Python) en remplacement des outils VHDL/Verilog. La grande différence par rapport à Vivado est le prix : Vitis devrait être entièrement gratuit, contrairement à Vivado. De plus, Vitis est prévu pour être très facile à intégrer dans les environnements de développement existants.


    Vitis est notamment prévu pour l'apprentissage profond, où le matériel avance très vite : le temps de concevoir une puce, de la faire fabriquer, de la déployer, il est probable qu'elle ne soit plus utile. Sur des FPGA, il est possible de reprogrammer très vite l'accélérateur et de toujours profiter des dernières avancées. Vitis permet, par exemple, de développer ses modèles avec TensorFlow ou PyTorch en Python, puis de les déployer sur FPGA pour les accélérer.


    Vitis est aussi livré avec une série de bibliothèques déjà optimisées, très faciles à utiliser. Xilinx livre par exemple une implémentation de BLAS pour l'algèbre linéaire ou des algorithmes de vision par ordinateur.

    En C, le code à compiler par Vitis doit être annoté pour indiquer les entrées et sorties de chaque fonction (qui sera traduite par un bloc) : chaque argument, la valeur de retour. Par exemple : #pragma HLS INTERFACE s_axilite port=in1 bundle=control.

    Source : Xilinx

    Voir aussi : tutoriels et bibliothèques sur GitHub.
    Vous souhaitez participer aux rubriques Qt ou PyQt (tutoriels, FAQ, traductions), HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  2. #2
    Membre éclairé
    D'abord catapult C, ensuite vivado HLS maintenant Vitis.


    Essayez donc de faire une interface avec un ADC ou un DAC avec ces outils...

  3. #3
    Membre à l'essai
    Citation Envoyé par mith06 Voir le message
    D'abord catapult C, ensuite vivado HLS maintenant Vitis.


    Essayez donc de faire une interface avec un ADC ou un DAC avec ces outils...
    Vitis est prévu pour le développement sur une plateforme. Donc les interfaces sont déjà définies. Vitis ne prévoit pas de remplacer Vivado qui sera toujours la pour définir la plateforme. Une fois la plateforme créée (avec les interfaces pour les DAC/ADC) Vitis peut être utiliser pour le développement de l'application (au sens large du terme puisque Vitis ne genere pas uniquement le SW met peut créer (en utilisant HLS) ou utiliser (RTL ou HLS) des kernels dans la partie logique).

###raw>template_hook.ano_emploi###