Overview - Software
All-in-one SDK
docker run -d --privileged -p 828:22 --gpus all -e "TERM=xterm-256color" --name gap_sdk hyeondg/gapuino_v3 # Nvidia
docker run -d --privileged -p 828:22 --device /dev/kfd --device /dev/dri -e "TERM=xterm-256color" --name gap_sdk hyeondg/gapuino_v3 # AMD
# Select 3 for the current test settings
Select the target :
1 - GAPOC_B_SPI_V2
2 - GAPOC_B_V2
3 - GAPUINO_V3
4 - GAPUINO_V3_SPI
>>> 3
The target board you have chosen is : gapuino, GAP8_V3.
RISC-V GNU Toolchain
The SDK uses a specialized RISC-V toolchain with extensions for GAP processors:
- Compiler:
riscv32-unknown-elf-gccwith GAP8/GAP9 ISA extensions - Linker: Custom linker scripts in
tools/ld/(defining memory layout) - Debugger:
riscv32-unknown-elf-gdbfor GDB debugging - Binary utilities: objdump, nm, size for binary inspection
Development Tools
NNTOOL - Neural Network Tool
Python-based tool that ports neural network models to GAP processors
- Input formats: PyTorch, TensorFlow Lite, ONNX, Keras
- Quantization: Converts FP32 models to INT8/INT16 for efficient inference
- Graph optimization: Fusion, transpose elimination, pruning
- Output: GAP-compatible graph definitions for Autotiler
- Located at
tools/nntool/built viamake nntooltarget.
Autotiler Code Generator
Generating optimized C code from algorithm descriptions
- Memory tiling: Automatically manages data movement between L1/L2 memory
- Kernel library: Provides optimized CNN, matrix, FFT, MFCC implementations
- Code generation: Produces efficient parallel code for cluster execution
- Integration: Works with NNTOOL output for neural network deployment
- Located at
tools/autotiler_v3/built viamake autotilertarget.
GVSOC - Virtual Platform Simulator System
System instruction set simulator (https://arxiv.org/abs/2201.08166)
- Timing-accurate event-driven simulator (cf. not cycle-accurate but functionally correct)
- Device models: Camera, microphone, LCD, and other peripheral simulations
- Profiling: Detailed performance analysis and execution traces
- Build: CMake-based build system at
gvsoc/, built via make gvsoc target (installed toinstall/workstation/)