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:
- Stel een root-wachtwoord in:
sudo passwd root - Schakel naar root:
sudo -s - Update systeem en firmware:
sudo apt update && sudo apt upgrade -y sudo rpi-update - Herstart:
sudo shutdown -r now - Installeer de nieuwste bootloader:
sudo rpi-eeprom-update -d sudo shutdown -r now - Draai
raspi-configen:- 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
- Naadloze temperatuur- en vochtigheidsbewaking op Raspberry Pi met EzTemp
- Beginner IoT-tutorial: Temperatuurdata streamen vanaf een Raspberry Pi
- IoT Bouwen met Java ME 8 op Raspberry Pi: Deel 1 – GPIO-sensorintegratie
- Een Budget-vriendelijke Raspberry Pi Babyhuil-detector Bouwen – DIY Handleiding
- Bouw je eerste IoT-project met Raspberry Pi, DHT11 en ThingSpeak
- Aan de slag met IoT en MQTT: Een code-vrije ESP8266-tutorial
- Raspberry Pi 3 verbinden met DHT11-sensor en data uploaden naar ThingsIo.ai-cloud
- Adafruit 10DOF IMU-data van Raspberry Pi 2 naar Azure Event Hubs Sturen met Windows 10 IoT Core
- Windows 10 IoT Core Installeren op Raspberry Pi 3 Model B+: Stap-voor-stap Handleiding
- ValentFX Onthult Open-Source FPGA Add-Ons voor BeagleBone & Raspberry Pi
- Besturing van gedistribueerde energiebronnen (DER) makkelijk gemaakt met OpenADR