ONNC x NVDLA Release 1.1.0


  • Version: r1.1.0
  • Release Date: 2019/5/16


ONNC on NVDLA AI starter kits provides software development kit (SDK) and board support package (BSP) for IC design houses who plan to develop its own deep learning accelerator (DLA) based on NVDLA.

It’s a comprehensive set of FPGA-based prototyping tools including AI-related hardware and software components:

  • compiler (ONNC)
  • drivers (KMD/UMD)
  • Linux kernel
  • virtual platform(GreenSocs)
  • FPGA netlist
  • NVDLA verilog RTL code

AI Starter Kits optimize your design process and ensures that your software runs and exploits the full power of the underlying AI chips. Skymizer aims at providing a unique solution tailored to your needs to help you build a strong hardware/software co-design team and efficiently save your time ahead of AI chip fabrication.

Highlights

Filesystem Hierarchy

To comply with the FHS (Filesystem Hierarchy Standard) rules, AI starter kits provides a directory r1.1.0 as the root directory of the entire file system hierarchy.

                                       
Directory Description
r1.1.0/Primary hierarchy root and the root directory of the entire file system hierarchy
r1.1.0/binEssential command binaries for all users, e.g., onnc.nv_small, vp_nv_small and the cross compiler
r1.1.0/includeStandard include files
r1.1.0/lib Libraries essential for the binaries in r1.1.0/bin
r1.1.0/shareArchitecture independent data
r1.1.0/srcSource code

Administrators can use /usr folder as a new primary hierarchy root and copy files keeping the directory structure.

Source code of SDK and BSP are grouped into organized form:

  r1.1.0/src/[platform]/[component]/[architecture]/

platform
virtual, zcu102 or zcu102-x
component
kmd, kernel and so on
architecture
nv_full, nv_small, and so on

Workspace builder has arrived

Workspace is a folder that allows users to exchange files and resources between platforms, such as virtual platform, FPGA and emulators, and work with them as a cohesive unit. To help with creating a workspace, we've added a great new way -onnc-create - for you to build up a workspace. onnc-create is an intuitive tool. You can find it in ther1.1.0/bin.

Here is a tutorial to onnc-create.

ONNC Software Development Kits

ONNC Software Developments Kits (SDK) is more than a compiler. It contains lots of useful tools for you to create, build, and verify NVDLA runtime environment. One famous tool in the SDK is ONNC. It supports both nv_full and nv_small architecture. onnc.nv_fullis the compiler for nv_full, and onnc.nv_small is for nv_small.

Another famous tools is the virtual platform. It is used to verify the BSP and generate real-world patterns for hardware designer. We leverage GreenSocs and extend it to support both nv_full and nv_small hardware configurations. vp_nv_small is the virtual platform supporting nv_small, and vp_nv_full is the one supporting nv_full.

For creation and customization of board support packages (BSP), a useful suite - Lander - is introduced. Lander contains several tools. bsp-create is used to create a new BSP. You can specify hardware configuration and target platform of the BSP. bsp-build program build the BSP and generate corresponding configuration files for virtual platforms and FPGAs

Known Issues

We've examined six ONNX models. Although there are still a few models that ONNC cannot compile, we will keep examining all available models from ONNX model zoo and compile them in the future version.

Supported Models

  • bvlc_alexnet
  • bvlc_googlenet
  • bvlc_reference_caffenet
  • bvlc_reference_rcnn_ilsvrc13
  • inception_v1
  • resnet50
Back to Top