ID de l'article: 000073897 Type de contenu: Dépannage Dernière révision: 23/01/2019

Pourquoi un dump de pile se produit-il lors d’une compilation du noyau OpenCL™ si le nombre de boucles dépasse le nombre de canaux alloués ?

Environnement

  • Intel® Quartus® Prime Pro Edition
  • Intel® Quartus® Prime Standard Edition
  • Intel® FPGA SDK pour OpenCL™
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    Descriptif

    Un dump de pile peut se produire lors d’une compilation OpenCL™ si une boucle contient une écriture sur un canal indexé et que le nombre de boucles dépasse le nombre de canaux alloués. Voir l’exemple de code ci-dessous.

    canal non signé char my_channel[16] __attribute__((depth(1024)));
    données carbonisées[32];

    ...
    for (caractère non signé i = 0; i < 32; i ) {
    write_channel_intel(my_channel[i], données[i]);

    }

    Résolution

    Assurez-vous que le nombre de boucles ne dépasse jamais le nombre de canaux alloués.

    #define num_channels 32

    canal non signé char my_channel[num_channels] __attribute__((depth(1024)));
    données char[num_channels];

    ...
    for (caractère non signé i = 0; i < num_channels; i ) {
    write_channel_intel(my_channel[i], données[i]);

    }

    Ce problème est résolu à partir de la version 19.1 du compilateur Intel® FPGA SDK pour OpenCL™.

    Produits associés

    Cet article concerne 1 produits

    Circuits programmables Intel®

    Le contenu de cette page est une combinaison de traduction humaine et informatique du contenu original en anglais. Ce contenu vous est fourni pour votre commodité et à titre informatif seulement et ne saurait être totalement exact ou complet. En cas de contradiction entre la version anglaise de cette page et la traduction, c'est la version anglaise qui prévaut. Afficher la version anglaise de cette page.