# AIPULinuxDriver **Repository Path**: Yang123321/aipulinux-driver ## Basic Information - **Project Name**: AIPULinuxDriver - **Description**: No description available - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-07-18 - **Last Updated**: 2024-06-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README AIPU LINUX DRIVER RELEASE INFORMATION ===================================== AIPU Linux driver consists of two key parts: User Mode Driver (UMD) and Kernel Mode Driver (KMD). The driver supports scheduling inference tasks on multiple target platforms: - x86-Linux (AIPU simulator) - Arm Linux For simulation on x86-Linux, only UMD is needed. For Arm-Linux platforms, both UMD & KMD are needed. Release Contents & Version -------------------------- Contents: UMD source code KMD source code Linux devicetree reference source code Driver compilation scripts Version: UMD 4.0.9 KMD 3.0.11 Feature List ------------ 1. AIPU executable binary version v3 & v4 2. single/multiple graph(s) inference 3. multi-process/thread application scheduling supported 4. AIPU host pipeline supported 5. Low Level API supported 6. Python API supported 7. AIPU printf supported 8. Multicore instances scheduling & debugging supported 9. SoC SRAM co-management with AIPU GBuilder supported Driver Environment ------------------ To build & deploy driver for target platforms, the environment specified in the following section are suggested to be used. Platforms (suggested) Arm Juno Env. (for z1/z2-0901) - Arm Juno-r2-LogicTile development board (https://developer.arm.com/tools-and-software/development-boards/juno-development-board) Xilinx 6CG-440 ZYNQ Env. (for all z2 configurations) Cadence Hybrid Env. (for all z1/z2 configurations) AIPU RTL Version (must) - Zhouyi z1/z2 Simulator Version (must) - Compass 2.0 simulator Benchmarks Version (must) - Compass 2.0 benchmarks System Version (suggested) - debian version 8.6 Linux kernel 4.9.168 (Juno-r2) - Linux kernel 4.9.118 (hybrid) - Linux kernel 4.14.0 (6CG) Toolchains Version (suggested) - g++ 7.3.0 (x86-Linux) - gcc-linaro-6.2.1-2016.11-x86_64_aarch64-linux-gnu (Juno-r2) - aarch64-linux-c++ (Buildroot 2017.08) 6.4.0 (hybrid) - gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu (6CG) Configurations (suggested) - Board: FPGA working frequency <= 30MHz on Juno r2 - System: please config your Linux kernel with the following configurations: -- CONFIG_DMA_CMA=y -- CONFIG_CMA_SIZE_MBYTES= and modify corresponding CMA configurations in device tree file. The CMA size to configure depends on your application scenarios. Corresponding reference device tree files are provided for driver porting. This version UMD supports Compass 2.0 simulator with dynamic library. If you would like to perform simulation based on simulator, please ensure to set the correct environment variable for simulator's execution by: $setenv LD_LIBRARY_PATH [simulator library path]:${LD_LIBRARY_PATH} Low Level UMD shares the same version of KMD with Standard UMD. It should be noted that standard API and low level API should not be called in the same user application. For detailed specification of UMD API please reference the Zhouyi Software Programming Guide. Python API is a wrapper of standard UMD and it shares the same version of KMD with Standard UMD. It depends on the following libraries/softwares in compilation/cross-compilation or execution: - SWIG >= 3.0 - Python 3.6.10 For detailed specification of Python UMD API please reference the Zhouyi Software Programming Guide. Driver Building Steps --------------------- UMD $cd ./Linux/driver/umd $./build.sh -p [target platform] -t [toolchain path] #standard UMD $./build.sh -p [target platform] -t [toolchain path] -l low_level_api #low level UMD $./build.sh -p [target platform] -t [toolchain path] -l python_api #python UMD KMD $cd ./Linux/driver/kmd $./build.sh -p [target platform] -k [kernel source path] -t [toolchain path] -v [z1]/[z2] Bug Fix List ------------ No.