Недавно я задумался об изучении новой области IT, которая бы соответствовала моим интересам и могла быть применима в карьере. У меня появилась концепция, о которой я хотел бы спросить - постараться объяснить свое видение, спросить, насколько оно реалистично, и описать предполагаемый план обучения.
Но прежде всего хотел бы отметить, что я студент и еще не достаточно хорошо знаком с FPGA, физикой и некоторыми другими областями, необходимыми для достижения моей цели. Именно поэтому я хочу получить немного больше информации заранее. Теперь к сути.
Я рассматриваю симуляцию физических процессов (например, кинематики, термодинамики, аэродинамики и т.д.) на базе FPGA. Например, использование FPGA для прогнозирования и регулирования энерции манипулятора. Подобное вполне возможно реализовать с помощью классического программирования, однако HDL может предложить более быстрое время отклика и меньшее энергопотребление.
В общем, я представляю набор дифференциальных уравнений, которые каким-то образом переносятся в HDL. Теоретически такая система могла бы ускорить предсказание поведения системы, предобработку сигналов, предсказать износ аппаратуры и, возможно, иметь другие применения.
Вероятно, подобное обычно реализуется с помощью систем наподобие PXI от National Instruments. Их ПО LabView предоставляет графический интерфейс для проектирования процессорной логики. Однако использование PXI приводит к некоторым проприетарным ограничениям (дорогое оборудование, лицензирование и пр.). Поэтому я хотел бы придерживаться базового VHDL/Verilog и какой-нибудь платы с чипом FPGA подходящей для обучения.
Как я представляю себе процесс ознакомления со всем этим:
* Достаточно хорошо освоить FPGA (например, пройти онлайн курс и реализовать процессор или средне-продвинутое GUI-приложение).
* Изучить конкретную область физики (возможно, стоит начать с простой кинематики - закончить курс, запомнить важные уравнения, решить набор задач и пр.)
* Найти способ объединить цифровую логику FPGA с непрерывными дифференциальными уравнениями. (пока не знаю, как)
* Реализовать первый проект - для начала достаточно подходящей может быть симуляция маятника (предсказать его положение в случае многосоставного маятника или попытаться стабилизировать его в случае простого маятника).
* После этого я бы занялся другой областью физики в зависимости от интереса, наличия спроса и т.д. (не знаю, сколько времени это может занять).
Это мое, в некоторой степени наивное, видение процесса достижения цели. Теперь я бы хотел задать несколько вопросов:
* Возможна ли апроксимация дифференциальных уравнений с помощью простого HDL после достаточного ознакомления с ним?
* Какая плата FPGA может подойти для первого подобного проекта (например моделирования/прогнозирования маятника)?
* Есть ли какие-нибудь руководства/репозитории или, может быть, литература по подобным проектам для начинающих? Пока не смог найти ничего подходящего.
* Приветствуются любые поправки к вышеописанной концепции.
Для старта вполне пойдет любой недорогой набор для начинающих. Мануалов и статей в сети полно. На Форт-форуме есть раздел FPGA, а так же опытнейшие FPGA разработчики - вполне можете спросить совета там. Там же много тем и даже есть обучающие материалы по FPGA. Учтите, что вам потребуется топовый ПК с максимальным объёмом памяти и быстрыми SSD - и чем мощнее ПЛИС, тем более серьёзная машина вам потребуется. Время моделирования вполне может идти многие часы и сутки. А для чего-то более-менее серьезного потребуется еще и разное дополнительное оборудование по типу осциллографа и прочего. Ибо моделирование моделированием, а на практике всякое случается и приходится дебажить на самой железке.
Если есть финансы, то лучше пройти платное обучение у специалистов. Начальный курс FPGA разработки стоит от $5-10к. Вот тут смотрите: https://plis2.ru/training.html
Большое спасибо за литературу и ссылки!
Заинтриговало такое большое время компиляции)
Ну а с курсами проблем не будет - в своё время сумел наскачивать курсов с Udemy :)
Call_me_Utka, не компиляции, а моделирования. Там идёт моделирование физических процессов в самом чипе. Просто для понимания сложности процесса: например, там надо учитывать скорость света, точнее - скорость распространения сигнала по кремниевым и медным проводникам на миллиметровых расстояниях, а то и меньше, ибо в одну часть чипа сигнал придёт, а до второй ещё не успеет. А так же всякие наносекунды. Поэтому там всё сложна ) Но очень-очень интересно.
FPGA - это можно сказать передний край разработки вычислительной техники. Они отлично подходят для отладки и проверки всяких вычислительных блоков и архитектур, которые потом уже можно запекать в кремнии. Ну и для всяких узкоспециализированных вычислений. Например, FPGA широко применяется в ускорителях как первичные фильтры для данных от детекторов - там реально терабайты данных сыпятся от столкновений частиц. И всё лишнее надо фильтровать, а наружу выдавать только самое важное.
В общем, регистрируйтесь на форт-форуме и вперёд на амбразуру )
VoidVolker, как-то давно пробовал проектировать пару простых счётчиков и триггеров (на Altera Cyclone IV, если не ошибаюсь).
Однако тогда не придумал достаточно интересного проекта для изучения.
(Не хотелось собирать абстрактный процессор или игровую приставку без особой цели).
Тема с физикой однако заинтересовала. - Скоро заканчивается бакалавриат и охота поскорее взяться за дело :)
Call_me_Utka, ну вот, можете даже познакомиться с таким интересным ЯП как Форт - для него существуют форт-процессоры, для которых Форт является ассемблером, при этом оставаясь высокоуровневым ЯП. Ну ведь круто же, а? И не только в ПЛИС, а вполне в себе в настоящем кремнии. Например 144 ядерный чип SeaForth GA144 вышел еще в 2011 году, при этом размер полмиллиметра на четверть. Долгое время Форт жил в загрузчике Фряхи, но не так давно его сменил Лисп (ЕМНИП), а ещё Форт используется в НАСА для мозгов различных спутников.
rPman, ну дык, не всё коту масленица, к сожалению... А так - GA144 реально была классная реализация форт-процессора и с действительно очень большим потенциалом. Теперь же этот проект - лишь история...
VoidVolker, в 2010-2015-ых годах появлялись куча интересных проектов типа adaptevia Epiphany 1024 ядер 15 ват потребления какие то дикие терафлопсы, оптические процессоры 2011, с околонулевым потреблением и возможностью перекодирования десятков видеопотоков на лету (повторяю 2010 год!) все куплено и уничтожено ради монополии usa intel/amd/nvidia (epipany куплен darpa, т.е. военные). оптика например в системах связи теперь используется.
И вообще глобализация в мире сломана очень сильно, технологии высокоскоростных вычислений сдерживаются (очень надеюсь бум chatgpt это проломает, но боюсь терки usa/china сделают только хуже, еще на десятилетие отбросят развитие)
rPman, это точно, эти те ещё гиены. А вот все эти чаты вылезли как грибы как-то внезапно и похоже тупо на какой-то вброс и очередной пузырь. Те же экспертные системы появились далеко не вчера, но в массы как-то не пошли.
VoidVolker, нет, gpt это супер технология, то что вокруг нее моментально стали надувать пузырь - это подтверждает.
Предыдущий президент 'мира' уже объявил эти технологиями стратегическими для своей страны... китай тоже 'роет землю' и идет шаг в шаг за ними, не спроста да?
p.s. привожу пример очень 'дешевого' в производстве вычислительного устройства, идеально подходящего для ИИ - fpga чипы + типовые модули памяти ddr 3/4/5, все типовое и дешевое, спроектировать и пустить в тираж такое можно за считанные десятки тысяч баксов, а если сделать все открытым и доступным (доступ к программированию fpga) то сообщество запилит все необходимое и еще вагон использования сверху.
spoiler
типовая gpt это многослойная фигня из простых операций над матрицами. каждый слой - свой fpga чип с контроллером памяти, общую шину данных можно делать но только для управления и сопроводиловки, в основном данные пересылать между соседними чипами (плюс объем данных передаваемых между слоями - ничтожен, логарифм от количества весов), да там даже kv cache делать не надо, можно запилить очень дубовое железо, а всю логику оставить на откуп программируемого чипа. Считанные сотня слоев, каждый по пару тройку гигабайт памяти, да ты выпусти голую плату с fpga и контроллерами, народ сам навставляет типовых ddr сколько андо, хоть гиговые для мелких сеток, хоть 16-гиговые для будущих 100500B
Интересно, почему до сих пор этого нет.
А так же, почему же до сих пор не взлетел проект по впечатыванию (read only) весов сетей прямо в чипы, т.е. проектировать чипы прямо под готовые опенсорсные модели, плюс LORA (был такой проект если не два).. и все канули в неизвестности, наверное не спроста?!