Зацініть автоматичний класифікатор модуляції з апаратною акселерацією на FPGA, що є результатом виконання диплому бакалавра на Факультеті прикладних наук УКУ
Автор роботи Pavlo Hiley, науковий керівник Oleg Farenyuk. Ми трохи допомагали консультаціями по FPGA
Вихідний код і текст диплому:
https://github.com/Pavlik1400/RISC-V-SIMD-ext-for-AI-workloadБуло досліджено кілька нейронок, що тренувались на датасетах RadioML 2016.10 a та b (ширина смуги 1 МГц, діапазон SNR [-20 : 2 : 18] дБ, модуляції BPSK, QPSK, 8PSK, 16QAM, 64QAM, BFSK, CPFSK, PAM4, WB-FM, AM-SSB, AM-DSB) та датасет згенерований в Matlab (ширина смуги 200 КГц, діапазони SNR [-30 : 1 : 29] дБ та [0 : 1 : 29] дБ, модуляції BPSK, QPSK, 8PSK, 16QAM, 64QAM, PAM4, GFSK, CPFSK, B-FM, AM-DSB, AM-SSB). В обох датасетах додавався значний перелік спотворень сигналу (Gaussian noise, timing offset, sample rate offset, carrier frequency offset, phase difference, Rician multi-path fading). З архітектур нейронок досліджувалась згорткові мережа і трансформер. Для апаратної акселерації обрана згорткова мережа. По якості класифікації вийшло досягти accuracy > 90% yже на квантованій CNN для SNR > 0 дБ.
Для апаратної акселерації обрано фреймфорк CFU-Playground. Підхід наступний. Створена нейронка конвертується в TensorFlow Lite формат, квантується в int8 і запускається на RISC-V процесорі на FPGA (а саме на відкритому VexRiscv). Нейронка профілюється, визначаються "вузькі" місця (для CNN це очевидно операція згортки, або постпроцесінг результату MAC). Далі з використанням кастомних інструкцій RISC-V процесора створюються апаратні акселератори на боці FPGA для "вузьких" місць. Такий програмно-апаратний підхід. Виходить суттєво дешевше по апаратним витратам ніж повністю апаратна реалізація нейронки і при цьому досягається збільшення швидкодії на один-два порядки.
Апаратні витрати вийшли порядку третини ресурсів FPGA на обраній для дослідів відносно недорогій платі Arty A7-100T
По швидкодії, то фінальна реалізація, яка не увійшла в диплом, але буде описана у статті конференції IEEE, що вийде за кілька місяців, класифікує фрейм із 128 відліків за 65 мс (RISC-V працює на частоті 60 МГц). При використанні потужнішої FPGA і запуску RISC-V на вищій частоті, а також застосуванням додаткових оптимізацій цю цифру можна зменшити ще на порядок. Це була швидкодія вбудованої системи. На потужному сервері звісно буде працювати на порядки швидше.
Зверніть увагу на якість оформлення дипломної роботи. Верстка в LaTeX з використанням типового шаблону роботи, опис англійською, структура роботи, як в топових універах світу. Чому в решті українських універів так не роблять - загадка. Круто ж!
Будемо раді, якщо цей приклад надихне когось на продовження досліджень в напрямку застосування машинного навчання для аналізу радіо сигналів!