Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Parallelle C++17 SYCL-code Bouwen op Raspberry Pi 4B+ IoT-boards

Ontdek hoe je moderne parallelle C++17-code kunt ontwikkelen, compileren en draaien op Raspberry Pi 4B+ IoT-boards met het Khronos CL/SYCL-programmeermodel, hipSYCL, en GCC/Clang-toolchains.

Onze Doelen

Deze gids biedt stapsgewijze instructies, praktische tips en best practices voor het creëren van efficiënte parallelle applicaties in C++17/20 met CL/SYCL op Raspberry Pi 4B+ IoT-boards, aangedreven door de ARM Cortex-A72 quad-core 64-bits architectuur.

Raspberry Pi 4B+ IoT-boards Overzicht

De nieuwste Raspberry Pi 4B+ boards hebben de Broadcom BCM2711B0 SoC, een Quad-Core ARM Cortex-A72 @ 1,5 GHz, en tot 8 GiB LPDDR4-3200 geheugen. Deze specificaties leveren hoge prestaties en schaalbaarheid voor edge-side parallelle computing, wat real-time dataverzameling, preprocessing en efficiënte off-loading naar datacenters mogelijk maakt.

Belangrijke voordelen omvatten:

  • DSP, SIMD, VFPv4 en hardware-virtualisatie-ondersteuning voor versnelde workloads.
  • Snelle VideoCore-VI GPU @ 500 MHz en PCI-Express Gigabit Ethernet voor hoge-bandbreedte connectiviteit.
  • Low-profile LPDDR4-geheugen dat parallelle doorvoer boost.

Voor datamining en zware parallelle workloads, worden de 4 GiB of 8 GiB-configuraties sterk aanbevolen.

Een Raspberry Pi 4B IoT-board Opzetten

Begin met het flashen van Raspbian Buster 10.6.0 op een 16 GB micro-SD-kaart met Raspberry Pi Imager 1.4. Eenmaal geflasht, steek de kaart in, sluit micro-HDMI, Ethernet en een 5 V/3 A USB-C-voeding aan, en zet het bord aan.

Voer de initiële post-installatiestappen uit:

  1. Stel een root-wachtwoord in:
    sudo passwd root
  2. Schakel naar root:
    sudo -s
  3. Update systeem en firmware:
    sudo apt update && sudo apt upgrade -y sudo rpi-update
  4. Herstart:
    sudo shutdown -r now
  5. Installeer de nieuwste bootloader:
    sudo rpi-eeprom-update -d sudo shutdown -r now
  6. Draai raspi-config en:
    • Update de tool.
    • Schakel de desktop-GUI uit (Boot → Console Autologin).
    • Vergroot de root-partitie.

Na de laatste herstart, log in als root. Installeer netwerktulpen en OpenSSH voor remote-toegang:

sudo apt install -y net-tools openssh-server

Configureer een statisch IP voor eth0 in /etc/network/interfaces en schakel root SSH-login in in /etc/ssh/sshd_config (uncomment de relevante regels). Herstart de SSH-service en verbind met een SSH-client zoals MobaXterm.

Parallelle C++17-code Ontwikkelen met CL/SYCL

De Khronos-groep introduceerde CL/SYCL als een moderne abstractielaag over OpenCL, wat heterogene parallelisme over CPUs, GPUs en FPGA's mogelijk maakt. Hieronder is een minimale SYCL-kernel die op de host-CPU draait:

#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){ // Parallel werk hier }); }); q.wait(); }

Om de Raspberry Pi's ARM AArch64-architectuur te targeten, heb je een SYCL-implementatie nodig die het ondersteunt. Het triSYCL-project biedt experimentele ondersteuning voor cross-platform builds, terwijl de meer volwassen hipSYCL-bibliotheek stabiele ondersteuning voor ARM biedt. Installeer de juiste toolchains:

  • GCC/G++ 10.x.x cross-compiler voor ARM.
  • LLVM/Clang 9.x.x native toolchain voor AArch64.

Bouw je SYCL-applicatie met hipSYCL, linkend tegen de ARM-backend, en deploy de executable direct naar de Raspberry Pi. Het draaien van de binary op de Pi zal de kernel op de CPU of elke beschikbare accelerator uitvoeren, wat meetbare versnelling levert voor data-intensieve workloads.

Door deze workflow te volgen, kunnen ontwikkelaars het volledige potentieel van Raspberry Pi 4B+ IoT-boards benutten voor edge-side parallelle computing, profiterend van het groeiende ecosysteem van SYCL-bibliotheken en open-source toolchains.

Productieproces

  1. Naadloze temperatuur- en vochtigheidsbewaking op Raspberry Pi met EzTemp
  2. Beginner IoT-tutorial: Temperatuurdata streamen vanaf een Raspberry Pi
  3. IoT Bouwen met Java ME 8 op Raspberry Pi: Deel 1 – GPIO-sensorintegratie
  4. Een Budget-vriendelijke Raspberry Pi Babyhuil-detector Bouwen – DIY Handleiding
  5. Bouw je eerste IoT-project met Raspberry Pi, DHT11 en ThingSpeak
  6. Aan de slag met IoT en MQTT: Een code-vrije ESP8266-tutorial
  7. Raspberry Pi 3 verbinden met DHT11-sensor en data uploaden naar ThingsIo.ai-cloud
  8. Adafruit 10DOF IMU-data van Raspberry Pi 2 naar Azure Event Hubs Sturen met Windows 10 IoT Core
  9. Windows 10 IoT Core Installeren op Raspberry Pi 3 Model B+: Stap-voor-stap Handleiding
  10. ValentFX Onthult Open-Source FPGA Add-Ons voor BeagleBone & Raspberry Pi
  11. Besturing van gedistribueerde energiebronnen (DER) makkelijk gemaakt met OpenADR