Open main menu

DAVE Developer's Wiki β

Changes

Embedded Environment
These platforms are both based on system-on-chips (SoC's) that are expressly designed to address industrial applications. NXP i.MX8M Plus and Xilinx Zynq UltraScale+ are indeed components that fit very well the demanding and challenging requirements our customers must meet in order to build successful products. For instance, these SoC's not only provides computational resources to implement complex architectures, but also have wide temperature operating ranges and long availability as they belong to specific longevity programs issued by the respective manufacturers.
At its core, ZCU104 integrates an array of processing elements including a quad-core ARM Cortex-A53 Application Processing Unit (APU) , which is based on a ARM64 architecture, and a dual-core ARM Cortex-R5 Real-Time Processing Unit (RPU)<ref>Dedicated hardware component or processor designed to execute tasks or operations with strict timing constraints. RPUs are commonly employed in systems that require immediate and predictable responses, such as embedded systems, robotics, and real-time control applications.</ref>. This processing power allows for efficient and parallel execution of complex ML algorithms, making it an ideal choice for applications that demand real-time processing capabilities. It also features a Mali-400 MP2 Graphics Processing Unit, 16nm FinFET+ Programmable Logic and 2 GB of DDR4 RAM. The peculiarity of this SoC that distinguishes it from competitors’ products is the fact that it integrates an Field Programmable Gate Array (FPGA)9, which is strictly coupled to the ARM processors. The ZCU104 boasts an array of high-speed interfaces, such as Gigabit Ethernet, USB 3.0, and DisplayPort, enabling seamless connectivity with external devices and peripherals. From the other side, at the heart of the SBC ORCA lies the NXP i.MX8M Plus SoC featuring, a quad-core Arm Cortex-A53 CPU, which is based ona ARM64 architecture, and a powerful Neural Processing Unit (NPU). The inclusion of the NPU enhances the platform’s ability to accelerate ML workloads, providing significant speed-up and power efficiency for neural network-based inference algorithms. The SBC ORCA is equipped with ample memory resources, including 6 GB of LPDDR4 RAM, to accommodate large datasets and complex ML models. Even the SBC ORCA offers a variety of high-speed interfaces, such as Gigabit Ethernet, USB, and HDMI, which enable seamless connectivity with external devices and peripherals. The research environment deployed on the two embedded devices was meticulously constructed, incorporating Python’s virtual environment (python-venv). The environment utilises pythonvenv, version 3.10.6, for the Xilinx Zynq UltraScale+ MPSoC ZCU104 device and version 3.9.1 for the DAVE Embedded Systems SBC ORCA device, ensuring precise version control and compatibility tailored to each device’s capabilities. To ensure uniformity and maintainability across different environments, the same "requirements.txt" file employed in the VM environment was seamlessly integrated into the python virtual environments of both embedded devices. By employing this unified approach, was guaranteed that each virtual environment within the embedded devices closely mirrors the environment
within the VM, thereby enhancing reproducibility and streamlining research tasks and experiments across diverse hardware platforms. Also in this case, the role of the server was performed by the notebook machine presented in the subsection 2.2.1. In Table 2.3 are briefly summarised the test bed specifications used.
4,650
edits