Exemple de conception de filtrage de documents

Recommandé pour :

  • Périphérique : inconnu

  • Quartus® : v17.1

author-image

Par

Cet exemple fournit un exemple de la façon ne pas un filtre à filtreas peut faciliter les performances d’une application.

Le filtrage de documents implique d’examiner un flux de documents entrant et de trouver celui qui correspond le mieux aux intérêts de l’utilisateur. Un exemple de ce système serait l’utilisation d’un mécanisme de filtrage qui surveillent les flux d’informations et envoie des articles pertinents au compte de messagerie d’un utilisateur. En général, cette application est un exemple d’analytique sur des données non structurées, telles que des fichiers texte, des pages HTML, des e-mails et des fichiers vidéo. Sur une estimé que jusqu’à 80 % de toutes les données pertinentes pour les entreprises sont sous forme non structurée.

L’algorithme tente de trouver les meilleurs documents correspondants pour un profil de recherche spécifique. Le profil de recherche est le filtre qui correspond aux documents en fonction de la rubrique d’intérêt de l’utilisateur. À cette fin, chaque document est réduit à un ensemble de mots, et la fréquence d’apparence de chaque mot dans le document. Chaque paire de fréquence (t_i ; f_i) du document est représentée comme un entier de 32 bits, avec un ID à terme de 24 bits et une fréquence d’apparition de 8 bits. Les termes sont généralement des mots dans le document. Une ID 24 bits permet d’obtenir une expérience de plus de 16 millions de termes. Le profil de recherche se compose d’un ensemble plus petit de termes et d’un poids pour chaque terme spécifiant son importance relative dans le profil de recherche. Les poids se composent d’un nombre de 64 bits dans la représentation de points fixes. Pour effectuer une recherche non structurée, un score est calculé pour chaque document afin de déterminer sa pertinence pour le profil donné.

Les données d’entrée du noyau sont les suivantes :

  • doc Délests est la référence de tous les documents que vous souhaitez exécuter dans le noyau. Chaque entier 32 bits représente un terme, ou un mot, dans le document. Les 24 premiers bits correspondent au terme ID, et les 8 derniers bits correspondant à la fréquence d’apparition de ce terme dans le document.
  • profileL’image est le profil de recherche. Il se compose d’un ensemble plus petit de termes et d’un poids pour chaque terme spécifiant son importance relative dans le profil de recherche. Les poids se composent d’un nombre de 64 bits dans la représentation de points fixes.
  • isLinProfileHash est le filtreasseurastre. Pour chaque ID de terme présent dans la batterie de profilLs qui a un poids non zéro, nous calculons deux valeurs de hachage à partir de celle-ci sur l’hôte. Ensuite, nous insérons les valeurs dans le filtre à filtreSastre. Ensuite, pendant l’exécution du noyau, les deux valeurs de hash sont calculées pour chaque ID de terme présent dans le document. Nous cherchons ces valeurs de hachnage dans le filtre à filtreSt. Si la valeur du hash n’est pas présente, cela signifie que que le mot ID n’est pas dans le profil de recherche. Si les deux valeurs de hash sont trouvéess, nous effectuerons un accès de la mémoire à la batterie profileL’image.

Les données de sortie vers le noyau sont les suivantes :

  1. profileScorePerGroup_highbits correspondant au score le plus élevé de 32 bits pour chaque document que nous avons calculé.
  2. profileScorePerGroup_lowbits sont les 32 bits inférieurs du score pour chaque document que nous avons calculé.

Ensemble, cela représente le score du document qui indique sa pertinence pour le profil donné. Pour améliorer encore le débit de cette application, nous avons divisé les entrées en deux portions de taille égale, un résidant sur chaque banque de mémoire DDR. Cela est indiqué par le _dimm1 (pour le premier DIMM) et par les _dimm2 (pour le deuxième DIMM) ajoutés aux paramètres du noyau. Cela améliore nos performances en tirant parti des deux banques de mémoire disponibles.

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 .

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.

Exigences matérielles et matérielles

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.