W kierunku skalowalnej analizy dokładności poziomu źródła dla Konwersja zmiennoprzecinkowa na stały punkt

Streszczenie

W systemach wbudowanych wiele algorytmów numerycznych są realizowane za pomocą arytmetyki stałoprzecinkowej, aby sprostać kosztom powierzchni i ograniczenia mocy. Decyzje dotyczące kodowania stałoprzecinkowego mogą
Istotnie wpływają na koszty i wydajność. Aby ocenić ich wpływ na dokładność, projektanci uciekają się do symulacji. Ich długi czas pracy uniemożliwia dogłębną eksplorację przestrzeni projektowej. Aby rozwiązać ten problem
problem, zaproponowano analityczne techniki modelowania, ale ich zastosowanie jest ograniczone przez problemy ze skalowalnością. W tym papierze, rozszerzamy te techniki na większą klasę programów. My użyj metod wielościennych, aby wyodrębnić bardziej zwarty, oparty na wykresie reprezentacja programu. Potwierdzamy nasze podejście za pomocą kilka algorytmów przetwarzania obrazu i sygnału.

WSTĘP

Niestandardowe wbudowane platformy sprzętowe wymagają gramatyk (projektant), aby sprostać wielu wyzwaniom, które nie pojawiają się w ustawieniu ogólnego przeznaczenia. Jednym z powodów jest to, że takie implementacje muszą spełniać ścisłe ograniczenia projektowe, takie jak: wydajność, koszt, energia, niezawodność i tak dalej. Ważna narzędzia do sprawnej eksploracji przestrzeni projektowej dodatkowo podkreśla presja rynku na skracanie cykle projektowe.

Zaprojektowano większość niestandardowych wbudowanych platform sprzętowych aby zapewnić wysoką moc obliczeniową przy niskim budżecie powierzchni/energii. Obsługa sprzętowa operacji zmiennoprzecinkowych rzadko jest pro- vided, co wymaga użycia arytmetyki stałoprzecinkowej do osiągnięcia wydajność. Jednak większość cyfrowych procesów sygnałowych i obrazowych ing specyfikacje (w Matlab lub C/C++) używają zmiennoprzecinkowych. Etap wdrożenia wymaga kosztownych (eksperymentów) zgłosić do 50% prac projektowych) zmiennoprzecinkowe do stałoprzecinkowych etap konwersji, wykonywany ręcznie.

Podczas procesu konwersji projektanci starają się wyprowadzić implementacje maksymalizujące wydajność przy jednoczesnym zachowaniu wystarczająca dokładność, aby zachować funkcjonalność systemu. W przypadku większości algorytmów wpływ decyzji dotyczących kodowania na ogólne zachowanie systemu jest trudne do przewidzenia, dlatego badanie wydajności/dokładności opiera się na symulacjach do oceny decyzji dotyczących kodowania. Ten czas symulacji jest często wąskie gardło, ograniczające eksplorację przestrzeni rozwiązań, co prowadzi do nieoptymalnych wdrożeń.

Aby rozwiązać ten problem, modele dokładności analitycznej zostały zaproponowane. Metody te koncentrują się na procesie sygnałowym- algorytmów (np. FIR, IIR, FFT), które są modelowane za pomocą Wykresy przepływu sygnału (SFG). Te podejścia dobrze pasują do przepływy projektowe oparte na modelu (np. języki graficznego przepływu danych) ale są trudne do dostosowania w kontekście kompilatora, gdzie model systemu jest niejawnie określony jako kod źródłowy programu.

Istniejące narzędzia rozwiązują problem, budując model SFG z programu, ale obecnie są ograniczone do jądra działające na stosunkowo małych, jednowymiarowych wejściach. Celem tej pracy jest rozszerzenie stosowalności automatycznej analityczne techniki modelowania do szerszej klasy programów (w poszczególne algorytmy przetwarzania obrazu). Skupiamy się na tym, jak systematycznie buduj takie modele z kodu źródłowego w bardziej wydajny i bardziej skalowalny sposób, zamiast poprawiania jakość (tj. dokładność modelu) w odniesieniu do wcześniejszej pracy. Kluczową ideą w tej pracy jest wykorzystanie splotów jako operator wysokiego poziomu do charakteryzowania programów wejściowych. Liniowy Systemy niezmiennicze w czasie (LTI) (i ich uogólnienie na wyższe) wymiary) są splotami przez stałe. Modele dokładności w przypadku systemów LTI polegaj na scharakteryzowaniu systemu za pomocą funkcje odpowiedzi impulsowej lub transferu, co jest znacznie uproszczona poprzez przedstawienie programu jako kombinacje zwoje. W szczególności nasz wkład to:

  • metoda automatycznego budowania abstrakcyjnych modeli program wejściowy składający się ze zwojów, zatrudniający szereg technik od kompilatorów,
  •  wykorzystanie abstrakcyjnego widoku programu do modelowania propagacja szumu, a także efekt kwantyzacji decyzjei
  • prototypowe wdrożenie i empiryczna walidacja naszego podejście z kilkoma przetwarzaniem sygnału i obrazu jądra.

Reszta tego artykułu jest zorganizowana w następujący sposób. W sekcji II, przedstawiamy niezbędne tło na stałym punkcie analiza dokładności. Przedstawiamy główne ograniczenia istniejącego podejścia i podkreśl nasz wkład w Sekcji III. Sekcja IV przedstawia system konwolucji jako zwarty reprezentacja programu wejściowego, którego używamy w rozdziale V zbudowanie analitycznego modelu dokładności dokładności. Oceniamy nasze podejście do aplikacji do przetwarzania sygnałów i obrazu w sekcji VI. Omówimy pokrewne prace w Sekcji VII, oraz zakończyć w sekcji VIII.