Exemple de conception d’opérations vectorielles multithread

Recommandé pour :

  • Périphérique : inconnu

  • Quartus® : v16.1

author-image

Par

Cet exemple de conception exécute deux instances d’une classe dans deux threads distincts. Chaque instance utilise un noyau différent : la première instance exécute un noyau d’ajout de vectoriel pour exécuter : C = A + B où A, B et C sont des vectoriels d’éléments N. La deuxième instance exécute un noyau de multiplication de vectoriel membre pour effectuer : C = A * B (member≥). Les noyaux sont volontairement simplifiés et non optimisés.

Comme le périphérique ne peut pas être programmé pour utiliser deux programmes distincts simultanément, les deux instances à problème partagent le même programme OpenCL™ (fonctionnant donc dans le même contexte). Cependant, comme c’est le cas dans cet exemple, les deux threads peuvent avoir des files d’attente de commandes séparées. Pour plus de simplicité, les deux threads fonctionnent sur deux instances du même code, avec des arguments différents, mais ils peuvent généralement exécuter deux classes distinctes.

En plus de la démonstration de l’interface de programmation d’applications OpenCL (API) de base, cet exemple prend en charge le partitionnement du problème sur plusieurs périphériques OpenCL, le cas échéant. S’il y a des périphériques M disponibles, le problème est divisé de sorte que chaque périphérique fonctionne sur des points N/M. Le programme hôte suppose que tous les périphériques sont de même type (c’est-à-dire que le même binaire peut être utilisé, mais le code peut être généralisé pour prendre en charge facilement différents types de périphériques).

Téléchargements

L’exemple de conception fournit le code source du périphérique OpenCL (.cl) ainsi que de l’application hôte. Pour compiler l’application hôte, le package Linux* comprend un fichier Makefile et le package Windows* comprend un projet Microsoft* Visual Studio 2010.

Les téléchargements suivants sont fournis pour cet exemple :

L’utilisation de cette conception est régie par les conditions générales du contrat de licence de conception de référencematérielle et soumise .

Exigences matérielles et logicielles

Cet exemple de conception nécessite les outils suivants :

  • Logiciel Intel® FPGA v17.1 ou ultérieure
  • Intel FPGA SDK pour OpenCL™ v17.1 ou une version ultérieure
  • Sous Linux : GNU Make and gcc
  • Sous Windows : Microsoft Visual Studio 2010

Pour télécharger les outils de conception Intel®, consultez la page de téléchargement OpenCL. Les exigences du système d’exploitation sous-jacent sont les mêmes que celles du Intel FPGA SDK pour OpenCL.

OpenCL et le logo OpenCL sont des marques commerciales d’Apple Inc. utilisées avec autorisation par Khronos.

* Le produit est basé sur une spécification khronos publiée et a réussi le processus de test de conformité de Khronos. L’état de conformité actuel se trouve à www.khronos.org/conformance.

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.