The QAic Compute SDK uses the hexagon toolchain and contains the QAic Compute low level toolchain, runtime, scripts, and a boilerplate app that are necessary to create executable C/C++ compute applications that will run on the Qualcomm Cloud AI 100.
All Dependencies have been tested on an Ubuntu 20.04 system.
Obtain Hexagon tools from https://github.com/quic/toolchain_for_hexagon
Tested version is 15.0.5:
In order to build, in addition to the base system, you must install:
- ninja-build
- clang
- zlib1g-dev
- dependencies for above
- CMake 3.24 or higher. Instructions are at https://apt.kitware.com/
From the root of the project run the command:
export HEXAGON_TOOLS_DIR=<path>
./scripts/build.sh [--tools-dir <tools-dir>] [--run-ctest] [--install]
Usage: build.sh [ --debug | --release | --release-assert (default) ]
[ --tools-dir ]
[ --run-ctest|--run-tests [--verbose-tests] ]
[ --install ]
--debug, --release, --release-assert change the build type (release-assert is default)
--tools-dir points to the location of build tools directory (only needed if HEXAGON_TOOLS_DIR is unset)
--run-ctest|run-tests runs ctest after building the project
--verbose-tests Passes --verbose to ctest
--install Installs the build output in the install/<build_type> directory
The installation is fully self contained but requires additional environment variables to locate the tools.
export QAIC_COMPUTE_INSTALL_DIR=<path_to_qaic_source>/install/<build_type>
export PATH=${QAIC_COMPUTE_INSTALL_DIR}/exec:$PATH
export HEXAGON_TOOLS_DIR=<path>
To ease development with CMake, a toolchain file is provided to automatically set up the appropriate commands for cross compiling a QAIC compute application from the host. This assumes an artifact package has been created with build.sh --install.
cmake -DCMAKE_TOOLCHAIN_FILE=${QAIC_COMPUTE_INSTALL_DIR}/dev/cmake/qaic.cmake
The examples directory <path_to_qaic_source>/examples/compute
contains example CMake
projects and source code that demonstrate how to build a barebones QAIC compute
application.
The example Barebones App only serves as an example for the bare minimum code needed to compile, link, and generate a library and a binary that uses the library.
Set environment variables
export QAIC_COMPUTE_INSTALL_DIR=<path_to_qaic_source>/install/<build_type>
export PATH=${QAIC_COMPUTE_INSTALL_DIR}/exec:$PATH
export HEXAGON_TOOLS_DIR=<path>
Copy example app to your workspace
cp -R <path_to_qaic_source>/examples/compute/barebones_app <your workspace>
cd <your workspace>/barebones_app
Setup CMake
mkdir build
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=${QAIC_COMPUTE_INSTALL_DIR}/dev/cmake/qaic.cmake ..
Build Application
make
At the end of the build step, two binaries should be generated:
BarebonesApp.elf
BarebonesApp.qpc
There are additional example applications demonstrating other aspects of operation. Refer to the documentation in those examples for details as to how they work and what they are demonstrating.
QAic Compute SDK is licensed under the terms in the LICENSE file.