

Наличие FPGA (полевые массивы затворов), доступный в центре обработки данных, представляет огромный потенциал для новых и захватывающих вычислительных моделей. Но для этой новой экосистемы для процветания нам нужна инфраструктура для разработки пользовательских аппаратных ускорителей для этих платформ и интеграции с веб -приложениями и облачной инфраструктурой. 1-я структура CLAAS приносит облачные FPGA в пределах досягаемости сообщества с открытым исходным кодом, стартапов и всех.
Этот Readme предоставляет обзор проекта. Следующие документы также доступны. После этого Readme, приступите к началу работы .
Для местного развития:
Для оптимизации и развертывания вашего пользовательского ядра с использованием AWS F1 с инструментами Xilinx.

С 1 -й CLAA вы можете транслировать биты непосредственно в и из собственного ядра FPGA, используя стандартные веб -протоколы (WebSockets или отдых). В простейшем варианте использования все программное обеспечение находится на стороне клиента в веб-браузере, а в FPGA реализуется вся логика сервера и хранилище данных. Ваше ядро использует очень простой интерфейс для потоковой передачи данных, и он может быть разработан в Verilog (или любом языке, собранном для Verilog).
1-й CLAAS идеально подходит для реализации функций в аппаратном обеспечении, которые ограничены вычислительными, но терпимыми к задержке Интернета и полосе. Приложения, требующие более сложного разделения обязанностей, могут расширить код хоста C ++ или веб -сервер Python для обработки данных между веб -приложением и FPGA.
Возможные домены приложения могут включать в себя:
Ваше приложение может быть:
1 -й CLAAS поддерживает разработку аппаратного ядра с использованием бесплатных инструментов с открытым исходным кодом на Linux (в настоящее время Ubuntu и Centos). Развертывание в настоящее время предназначено для экземпляров FPGA F1 от Amazon. Мы приветствуем взносы для расширения 1 -го класса на другие платформы и операционные системы.
Аппаратное ускоренное веб -приложение с использованием этой структуры состоит из:

Данные передаются из приложения веб -клиента в кусках 512 бит (в настоящее время). JavaScript вызывает метод отправки и получает данные от пользовательского ядра в обратном вызове. Пользовательское ядро имеет простой потоковой интерфейс с 512-битной шиной входных данных и 512-разрядной шиной для выходных данных. Данные отправляются из JavaScript:
Производительность общения в настоящее время не является центром. Приложения, которые хорошо подходят для этой архитектуры, по своей природе ограничены, поэтому оптимизация связи часто не имеет значения, но реализация может быть оптимизирована по мере возникновения потребности.
В простом случае вы предоставляете только зеленые компоненты на приведенной выше диаграмме, и вся пользовательская обработка данных выполняется пользовательским ядром. Но приложение C ++/OpenCl Host и/или веб -сервер Python может быть расширена по желанию.
Перед этим проектом интеграция аппаратного ускорения FPGA с помощью веб -и облачных приложений была сложным предприятием, требующим:
Предоставляя веб -сервер, код приложения хоста и логику оболочки ядра для трансляции данных между веб -приложением и ядром FPGA, а также автоматизации создания и конфигурации экземпляра облака, 1 -й CLAAS снижает вашу работу:
[Cc by-sa 2.0, lumaxart, модифицированный]
Накладные расходы на развитие инфраструктуры уменьшаются с нескольких месяцев до нескольких часов.
Посмотрев конкретно на платформе Amazon F1, F1 предоставляет мощные инструменты Xilinx FPGA и Xilinx разработки на основе оплаты за использование, что довольно убедительно. Но платформа имеет кровотечение и требует значительного опыта для использования. Наш опыт работы с этой платформой был довольно болезненным (и несколько дорогим) по нескольким причинам:
Мы должны были пройти эту боль, но мы объединили нашу работу, чтобы вам не пришлось.
Чтобы еще больше оптимизировать разработку, снизить стоимость и избежать любой зависимости от платформы F1 и стека инструментов Xilinx, мы поддерживаем разработку на вашей локальной машине, где ядро имитация RTL с использованием RTL-симулятора Verilator с открытым исходным кодом. Инструменты AWS и Xilinx требуются только для оптимизации и развертывания ядра. В качестве дополнительного бонуса моделирование Verilator работает значительно (~ 100x?!) Быстрее, чем моделирование, используя аппаратный поток эмуляции Xilinx », отчасти потому, что Verilator быстро и частично потому, что мы имитируем только пользовательское ядро, не включая логику оболочки, окружающую ядро.
Сокращение проблемы до разработки Интернета и RTL не является финишной чертой для нас. 1 -й CLAAS является частью более широкой попытки переопределить кремниевую промышленность и донести кремний в массы. Преодоление сложности моделирования RTL является частью этого. 1-й CLAAS управляется заядлыми сторонниками TL-Verilog в связи с Redwood Eda. TL-Verilog вводит столь необходимый сдвиг методологии проектирования цифровых цепей с более простыми и более мощными конструкциями моделирования. 1-й Claas никоим образом не связан с TL-Verilog. Вы можете использовать Verilog/SystemVerilog или любой язык для оборудования, который можно превратить в Verilog. Но расширения LNGUAGE TL-Verilog поддерживаются из коробки, и мы настоятельно рекомендуем вам воспользоваться ими и помочь нам продвигать это инновации вперед. Redwood Eda предоставляет бесплатную онлайн-IDE для разработки TL-Verilog на MakerChip.com. Вы можете найти учебные материалы в IDE. Прочитайте более полную историю от основателя Redwood Eda, Стива Гувера.
Коммерчески, 1 -й CLAAS используется через PowerPuter, Inc. для обеспечения динамической классификации потоковых данных.
1 -й CLAAS отдает фракталы в реальном времени для fractalvalley.net.
Этот репозиторий обычно работает, и первоначальный толчок развития сворачивается.
Все и все может быть изменено на этом этапе, особенно в отношении интерфейса, предоставленного структурой для приложений для строительства. Таким образом, вы должны опираться на определенную версию фреймворта и рассчитывать на некоторую отладку, если вы решите обновить, вытащив из Master.
Хмммм ... мы еще не так много думали. Просто скажи что -нибудь хорошее, и мы будем счастливы.
Все товарные знаки, цитируемые в этом хранилище, являются собственностью их соответствующих владельцев.