Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Сборка параллельного C++17 SYCL кода на Raspberry Pi 4B+ IoT платах

Узнайте, как разрабатывать, компилировать и запускать современный параллельный C++17 код на Raspberry Pi 4B+ IoT платах с использованием программной модели Khronos CL/SYCL, hipSYCL и тулчейнов GCC/Clang.

Наши цели

Это руководство предлагает пошаговые инструкции, практические советы и лучшие практики для создания эффективных параллельных приложений на C++17/20 с CL/SYCL на Raspberry Pi 4B+ IoT платах, основанных на архитектуре ARM Cortex-A72 четырехъядерный 64-бит.

Обзор Raspberry Pi 4B+ IoT плат

Последние Raspberry Pi 4B+ платы оснащены SoC Broadcom BCM2711B0, четырехъядерным ARM Cortex-A72 @ 1.5 ГГц и до 8 ГБ LPDDR4-3200 памяти. Эти спецификации обеспечивают высокую производительность и масштабируемость для параллельных вычислений на краю, позволяя сбор, предобработку и эффективную разгрузку данных в дата-центры в реальном времени.

Ключевые преимущества:

Для интеллектуального анализа данных и тяжелых параллельных рабочих нагрузок настоятельно рекомендуются конфигурации 4 ГБ или 8 ГБ.

Настройка Raspberry Pi 4B IoT платы

Начните с прошивки Raspbian Buster 10.6.0 на 16 ГБ micro-SD карту с помощью Raspberry Pi Imager 1.4. После прошивки вставьте карту, подключите micro-HDMI, Ethernet и 5 В/3 А USB-C блок питания, затем включите плату.

Выполните первичные постинсталляционные шаги:

  1. Установите root-пароль:
    sudo passwd root
  2. Переключитесь на root:
    sudo -s
  3. Обновите систему и прошивку:
    sudo apt update && sudo apt upgrade -y
    sudo rpi-update
  4. Перезагрузите:
    sudo shutdown -r now
  5. Установите последний загрузчик:
    sudo rpi-eeprom-update -d
    sudo shutdown -r now
  6. Запустите raspi-config и:
    • Обновите утилиту.
    • Отключите десктоп GUI (Boot → Console Autologin).
    • Расширьте корневой раздел.

После финальной перезагрузки войдите как root. Установите сетевые инструменты и OpenSSH для удаленного доступа:

sudo apt install -y net-tools openssh-server

Настройте статический IP для eth0 в /etc/network/interfaces и включите root SSH логин в /etc/ssh/sshd_config (раскомментируйте соответствующие строки). Перезапустите SSH-сервис и подключитесь через SSH-клиент вроде MobaXterm.

Разработка параллельного C++17 кода с CL/SYCL

Khronos Group представила CL/SYCL как современную абстракцию над OpenCL, позволяющую гетерогенный параллелизм на CPU, GPU и FPGA. Ниже приведен минимальный SYCL-кернел, выполняющийся на хост-CPU:

#include 
using namespace cl::sycl;
constexpr std::uint32_t N = 1000;
int main(){
  queue q{};
  q.submit([&](handler &cgh){
    cgh.parallel_for(range<1>{N}, [=](id<1> idx){
      // Параллельная работа здесь
    });
  });
  q.wait();
}

Для таргетинга ARM AArch64 архитектуры Raspberry Pi нужна реализация SYCL с поддержкой ARM. Проект triSYCL предлагает экспериментальную поддержку кроссплатформенных сборок, а более зрелая библиотека hipSYCL дает стабильную поддержку ARM. Установите соответствующие тулчейны:

Соберите ваше SYCL-приложение с hipSYCL, линкуя против ARM бэкенда, и деплойте исполняемый файл прямо на Raspberry Pi. Запуск бинарника на Pi выполнит кернел на CPU или любом доступном ускорителе, давая измеримый прирост для данных-интенсивных рабочих нагрузок.

Следуя этому workflow, разработчики могут раскрыть полный потенциал Raspberry Pi 4B+ IoT плат для параллельных вычислений на краю, пользуясь растущей экосистемой SYCL библиотек и open-source тулчейнов.

Производственный процесс

  1. Бесшовный мониторинг температуры и влажности на Raspberry Pi с EzTemp
  2. Учебник для начинающих по IoT: стриминг данных температуры с Raspberry Pi
  3. Создание IoT с Java ME 8 на Raspberry Pi: Часть 1 — интеграция GPIO-датчиков
  4. Создание бюджетного детектора плача ребенка на Raspberry Pi — DIY-руководство
  5. Создайте свой первый IoT-проект с Raspberry Pi, DHT11 и ThingSpeak
  6. Начало работы с IoT и MQTT: урок без кода для ESP8266
  7. Подключение Raspberry Pi 3 к датчику DHT11 и загрузка данных в облако ThingsIo.ai
  8. Передача данных Adafruit 10DOF IMU с Raspberry Pi 2 в Azure Event Hubs на Windows 10 IoT Core
  9. Установка Windows 10 IoT Core на Raspberry Pi 3 Model B+: Пошаговое руководство
  10. ValentFX представляет открытые FPGA-аддоны для BeagleBone и Raspberry Pi