1 / 20

Ускорение выравнивания строк на ПЛИС при помощи HaSCoL

Ускорение выравнивания строк на ПЛИС при помощи HaSCoL. Олег Медведев (Ланит-терком, НИИ ИТ СПбГУ) SECR , 02.11. 2011. Множественное выравнивание. MRKMSEEEFYLFKNISSVGPWDGPQYHIAPVWAFYLQAAFMGTV MNGTEGNNFYVPLSNRTGLVRSPFEYPQYYLAEPWQFKLLAVYM MKQVPEFHEDFYIPIPLDINNLSAYSPFLVPQDHLGNQGIFMAM

kordell
Télécharger la présentation

Ускорение выравнивания строк на ПЛИС при помощи HaSCoL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Ускорение выравнивания строк на ПЛИС при помощи HaSCoL Олег Медведев (Ланит-терком, НИИ ИТ СПбГУ) SECR, 02.11.2011

  2. Множественное выравнивание MRKMSEEEFYLFKNISSVGPWDGPQYHIAPVWAFYLQAAFMGTV MNGTEGNNFYVPLSNRTGLVRSPFEYPQYYLAEPWQFKLLAVYM MKQVPEFHEDFYIPIPLDINNLSAYSPFLVPQDHLGNQGIFMAM * FLIGFPLNAMVLVATLRYKKLRQPLNYILVNV FFLICLGLPINGLTLICTAQHKKLRQPLNFILVNL SVFMFFIFIGGASINILTILCTIQFKKLRSHLNYILVNL

  3. Множественное выравнивание ---MRKMS--EEEFYL-----FKNISSV--GPWDGPQYHIAPVWA ---MNGTE--GNNFYVP----LSNRTGLVRSPFEYPQYYLAEPWQ ---MKQVPEFHEDFYIPIPLDINNLS--AYSPFLVPQDHLGNQGI * * * * ** ---------FYLQAAFMGTVFLIGFPLNAMVLVATLRYKKLRQPLNYILVNV ---------FKLLAVYMFFLICLGLPINGLTLICTAQHKKLRQPLNFILVNL ---------FMAMSVFMFFIFIGGASINILTILCTIQFKKLRSHLNYILVNL * * * * **** ** ****

  4. Множественное выравнивание • Задача формализуется несколькими способами • В любом случае точно решается экспоненциальными алгоритмами • Поэтому на самом деле решается приближенно • Например, при помощи open source средства MAFFT

  5. Производительность MAFFT • Не очень хорошая (для самого «точного» варианта) • При этом 90% времени тратится в процедуре выравнивания двух строк • Её было решено ускорить аппаратно

  6. Общий вид системы PC FPGA (ПЛИС) 100MBit/s Ethernet Эмулирует любую цифровую синхронную интегральную схему

  7. Боремся за 10х и более ускорение PC FPGA (ПЛИС) Intel Core Duo 1.8GHz, оптимизированый код на Си Virtex5 xc5vlx50t-1 код на HaSCoL, написанный за 10 дней. Выравнивание двух строк Работает в 10 раз быстрее

  8. В чем сложность подхода? PC FPGA (ПЛИС) Программируется на одном из множества языков Программируется на низкоуровневых VHDL/Verilog, либо средствами HLS

  9. Средства high-level synthesis • Синтез из Си-подобных языков, либо подмножеств Си (CatapultC, HandelC, SpecC, MitrionC, …) • Попытки предложить свой язык (Bluespec, наш HaSCoL)

  10. HaSCoL– набор вложенных расширяемых языков Не тактово-аккуратные расширения Конвейер, поток управления Поддержка обмена сообщениями Базовый уровень языка (типа VHDL/Verilog) Тактово-аккуратные расширения языка (уже реализованы

  11. Целевая функция для выравнивания двух строк • Даны (как-то выравненные) строки , над алфавитом • Дана функция • Целевая функция такова:

  12. Примерное устройство решения

  13. Матрица возвратов

  14. Примерное устройство решения: конвейер вычислителей

  15. Один вычислитель -- реализация data previousValue : tWeight; data previousLeftValue : tWeight; in nextLeftValue(nextLeftValue : tWeight) { nextOurValue = someExpression(value, previousValue, previousLeftValue) | previousOurValue := nextOurValue | previousLeftValue := nextLeftValue ; send propagateToTheRight(nextOurValue) }

  16. Сложность 1: короткий конвейер

  17. Соответствующий управляющий код while colPos < s2len do inform initialCol(colPos, 0) | colPos = colPos + AlignerSize | reccoldiv := reccoldiv + 1 ; wait(AlignerSize); let lastCol = colPos >= s2len in { rowPos = (0 : int(16)) | lastCol = lastCol | rowWritePos := 0 | skipHead := if lastCol then s1lenModAlignerSizeR else 0 fi }; while rowPos <= s1len + ( if lastCol then (ext(s1lenModAlignerSizeR, 16) : int(16)) else (0 : int(16)) fi ) do rowPos = rowPos + 1 | inform pushRowSymb(rowPos) done; wait(AlignerSize) done;

  18. Сложность 2 • Необходимость делать обратный проход по матрице, перевычисляя вертикальные полосы в обратном порядке, потому что матрицу возвратов сохранить невозможно • Эту сложность мы преодолеваем примерно таким же образом

  19. Еще раз результаты • Примерно за 10 дней на HaSCoLреализовано устройство вычисления попарного выравнивания • Оно протестировано на нескольких десятках тысяч тестов в симуляции • Синтезировано для FPGA Virtex-5 xc5vlx50t-1, по результатам синтеза получена оценка: устройство будет работать примерно в 10 раз быстрее программной реализации попарного выравнивания

  20. Контакты, ссылки • Язык называется HaSCoL • Скачать тулы, статьи про HaSCoLhttp://oops.math.spbu.ru/projects/coolkit • GNU код на HaSCoL(разное – магистры ГУАП, студенты, аспирант, я сам) http://code.google.com/p/hascolplayground • Oleg.Medvedev@lanit-tercom.com

More Related