W tym przykładzie podano przykład na to, w jaki sposób filtr sekwojowy może pomóc w aplikacji.
Filtrowanie dokumentów obejmuje przeglądanie przychodzącego strumienia dokumentów i wyszukiwanie tych, które najlepiej pasują do potrzebnia. Przykładem takiego system byłoby wykorzystanie mechanizmu filtrowania, który monitoruje kanały informacyjne i wysyłać odpowiednie artykuły na konto e-mail użytkownika. Ogólnie rzecz biorąc, ta aplikacja jest przykładem wykonywania analiz na nieusystematyzowanych danych, takich jak pliki tekstowe, strony HTML, wiadomości e-mail i pliki wideo. Oszacowano, że nawet 80% wszystkich istotnych danych dla firmy jest w formie nieusystematyzowanej.
Algorytm usiłuje znaleźć najlepiej pasujące dokumenty do konkretnego profilu wyszukiwania. Profil wyszukiwania do filtra dopasowany do dokumentów z kontekście interesującego go tematu. W tym celu każdy dokument jest ograniczony do zestawu słów i częstotliwości tworzenia informacji o każdym słowie w dokumencie. Każda para terminów — częstotliwość (t_i; f_i) z dokumencie jest przedstawiana jako 32-bitowa liczba całkowita z identyfikatorem 24-bitowym i 8-bitowym częstotliwością identyfikatora. Terminy do uzyskania gwarancji na produkty w dokumencie. 24-bitowy identyfikator pozwala na ponad 16 milionów dolarów. Profil wyszukiwania składa się z mniejszego zestawu terminów i wagi dla każdego terminu, określającego jego względne znaczenie w profilu wyszukiwania. Wagi składają się z 64-bitowej liczby w stałej reprezentacji punktów. W celu przeprowadzenia nieusystematyzowanego wyszukiwania obliczany jest wynik dla każdego dokumentu w celu określenia jego trafności dla danego profilu.
Dane wejściowe do jądra są następujące:
- docWordFrequencies reprezentuje wszystkie dokumenty, które chcesz uruchomić za pomocą jądra. Każdy 32-bitowy liczba całkowita z dokumencie termin lub słowo. Pierwsze 24-bitowe do identyfikatora termin, ostatni 8 bitów to częstotliwość częstotliwość tego terminu w dokumencie.
- profilKszuki do profilu wyszukiwania. Składa się na z mniejszego zestawu terminów i wagi dla każdego określenia określającego jego względne znaczenie w profilu wyszukiwania. Wagi składają się z 64-bitowej liczby w stałej reprezentacji punktów.
- isWordInProfileHash do filtra firmy Filter firmy Kodeif. Dla każdego identyfikatora terminów obecnego w macierzy profileOdszuki, która ma wagę niezerową, obliczamy dwie wartości wartości mieszania na hoście. Następnie wprowadzamy system wartości wartości do filtra Filtr firmy Filter firmy Filter firmy. Następnie, podczas wykonywania jądra, dwie wartości wartości skrótu są obliczane dla każdego identyfikatora terminów obecnych w dokumencie. Sprawdzamy te wartości mieszania z filtrem filtr firmy Filter firmy Filter. Jeśli żadna wartość wartość hash nie jest obecna, oznacza to, że identyfikator słowa nie znajduje się w profilu wyszukiwania. Jeśli oba wartości skrótu zostaną odnalezione, wykonamy dostęp pamięci do tablicy profileZnak.
Dane wyjściowe do jądra do:
- profileScorePerGroup_highbits do 32 bitów wyższej wersji wyniku dla każdego obliczonego przez nas dokumentu.
- profileScorePerGroup_lowbits do niższy 32-bitowego wyniku dla każdego obliczonego przez nas dokumentu.
W połączeniu oznacza do wyniku dokumentu wskazujący na jego znaczenie dla danego profilu. Aby jeszcze bardziej zwiększyć przepustowość tej aplikacji, dzielimy dane wejściowe na dwie części o jednakowym rozmiarze, z których jeden mieszka na każdym brzegu pamięci DDR. Jest do wskazane przez _dimm1 (dla pierwszego MODUŁU DIMM) i _dimm2 (dla pamięci DIMM) dołączonego do parametrów jądra. Dodatkowo zwiększa się do naszą wydajność dzięki wykorzystaniu dwóch dostępnych banków pamięci.
Pobrań
Przykład projektu zawiera kod źródłowy urządzenia OpenCL™ (.cl) oraz aplikacji hosta. W celu kompilacji aplikacji hosta pakiet Linux* zawiera plik Makefile, pakiet Windows zawiera projekt Microsoft Visual Studio 2010.
Następujące pliki do pobrania są podane dla tej przykładu:
Użytkowanie tego projektu podlega i podlega warunkom umowy licencyjnej na projekt referencyjny sprzętu.
Aby pobrać narzędzia do projektowania firmy Intel, odwiedź stronę pobierania OpenCL. Wymagania dotyczące odpowiedniego systemu operacyjnego są takie same jak wymagania Intel® FPGA SDK dla OpenCL.
OpenCL i logo OpenCL są znakami towarowymi firmy Apple Inc. użytymi za zgodą Khronos.
* Produkt jest oparty na opublikowanej specyfikacji Khronos i przeszedł proces testowania zgodności Khronos. Aktualny status zgodności można znaleźć na stronie www.khronos.org/conformance.
Wymagania dotyczące oprogramowania i sprzętu
Wymagana | wersja | programu hosta | jądra OpenCL | ||||
---|---|---|---|---|---|---|---|
Kompiluj sprzęt | Kompilacja emulacji | Kompiluj sprzęt | Sprzęt działa | Emulacji compoile | Emulacja | ||
Oprogramowanie Intel FPGA (Intel® Quartus® Prime) | lub nowsze 17.1 | ✓ | ✓ | ||||
Intel FPGA SDK dla OpenCL | lub nowsze 17.1 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Środowisko wykonawcze Firmy Intel dla OpenCL | lub nowsze 17.1 | ✓ | ✓ | ✓ | ✓ | ||
Pakiet pomocy technicznej dla płyty głównej | Kompatybilność 17.1 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Sprzęt płyty głównej | - | ✓ | ✓ | ||||
Gcc | 4.8.4 lub nowsze | ✓ | ✓ | ✓ | ✓ | ||
Zgłoś z GNU | 4.8.4 lub nowsze | ✓ |