Cloning the repository
To clone the ML SDK for Vulkan® repository, you can use the Repo tool. The tool is available here: (https://gerrit.googlesource.com/git-repo). Cloning using Repo tool ensures all components and dependencies are fetched and in a suitable default location on the file system. To initialize the repo structure for the entire ML SDK for Vulkan®, including all components, run:
repo init -u https://github.com/arm/ai-ml-sdk-manifest.git -g all
After the repository is initialized, fetch the contents with:
repo sync
Note: Cloning on Windows®
To ensure nested submodules do not exceed the maximum long path length, you must enable long paths on Windows®, and you must clone close to the root directory or use a symlink. Make sure to use Git for Windows.
Using PowerShell:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled" -Value 1
git config --global core.longpaths true
git --version # Ensure you are using Git for Windows, for example 2.50.1.windows.1
git clone <git-repo-tool-url>
python <path-to-git-repo>\git-repo\repo init -u <manifest-url> -g all
python <path-to-git-repo>\git-repo\repo sync
Using Git Bash:
cmd.exe "/c reg.exe add \"HKLM\System\CurrentControlSet\Control\FileSystem"" /v LongPathsEnabled /t REG_DWORD /d 1 /f"
git config --global core.longpaths true
git --version # Ensure you are using the Git for Windows, for example 2.50.1.windows.1
git clone <git-repo-tool-url>
python <path-to-git-repo>/git-repo/repo init -u <manifest-url> -g all
python <path-to-git-repo>/git-repo/repo sync
Due to a known issue in git-repo
, nested submodules do not always update as part of repo sync
and need to
be manually updated, for example:
cd dependencies/glslang
git submodule update --init --recursive
After the sync command completes successfully, you can find the individual components in <repo_root>/sw/
.
You can also find all the required dependencies in <repo_root>/dependencies/
.
Tip
You can initialize the repository with only the components that you need. This also fetches only the dependencies
required by the selected components. The -g all
in the preceding initialization command is equivalent
to -g model-converter vgf-lib scenario-runner emulation-layer
. Some components may also force other components
to be included. For example, scenario-runner
automatically includes vgf-lib
because vgf-lib
is required.
Note
Although we do not recommend this method, you can check out the components using git clone
commands directly.
This requires checking out each component and dependency manually. The custom location to each dependency needs
to be configured explicitly by options to the build command for each component which results in a more complicated
workflow.