Recommended Project Directory Structure - 2024.1 English

AI Engine-ML Kernel and Graph Programming Guide (UG1603)

Document ID
UG1603
Release Date
2024-06-06
Version
2024.1 English

The following directory structure and coding practices are recommended for organizing your AI Engine-ML projects to provide clarity and reuse.

  • All adaptive data flow (ADF) graph class definitions, that is, all the ADF graphs that are derived from graph class adf::graph, must be located in a header file. Multiple ADF graph definitions can be included in the same header file. This class header file should be included in the main application file where the actual top-level graph is declared in the file scope.
  • There should be no dependencies on the order that the header files are included. All header files must be self-contained and include all the other header files that they need.
  • There should be no file scoped variable or data-structure definitions in the graph header files. Any definitions (including static) must be declared in a separate source file that can be identified in the header property of the kernel where they are referenced (see Lookup Tables).
  • Only one source file is allowed to be specified as kernel source via adf::source. When sub-functions are defined as a library in separate source files (for example, util.hpp and util.cpp), the workaround is to:
    • Include all the library source files in a header file (for example, lib.hpp):
      #pragma once
      #include <util.hpp>
      #include <util.cpp>
    • And then include the header file lib.hpp in the kernel source file.