Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "environments"]
path = environments
url = https://github.com/tipi-build/environments.git
20 changes: 20 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,26 @@ Pre-build binaries are generated with the following security / good coding pract

[docs-howtobuild]: https://artificial-intelligence.sites.arm.com/computelibrary/latest/how_to_build.xhtml

### Run a CMake `--distributed` build with caching and remote execution on an RBE cluster
Fast cached and distributed builds can be made through the use of `cmake-re` :

```bash
# Authenticate
export RBE_service=<re-cluster-address>:443
export RBE_tls_client_auth_key=$HOME/engflow-mTLS/engflow.key
export RBE_tls_client_auth_cert=$HOME/engflow-mTLS/engflow.crt

export TIPI_CACHE_CONSUME_ONLY=ON # Disable TIPI additional cache layers

cmake-re -S . -B build/aarch64-re -DCMAKE_TOOLCHAIN_FILE=environments/linux-ubuntu-2404-aarch64-linux-gnu.cmake
cmake-re --distributed --build build/aarch64-re -j500
```

When remote execution is not wished, and only remote caching is wanted one can set the environment variable :
* `RBE_exec_strategy=local`

Usage & Details on the [`cmake-re` documentation](https://tipi.build/documentation/0352-distributed-builds)

<br>

## How to contribute
Expand Down
20 changes: 15 additions & 5 deletions docs/user_guide/how_to_build_and_run_examples.dox
Original file line number Diff line number Diff line change
Expand Up @@ -493,19 +493,20 @@ Build validation and benchmarking:

bazel build //tests:all

@subsection S1_8_2_cmake_build CMake build
@subsection S1_8_2_cmake_build CMake RE build

@subsubsection S1_8_2_1_file_structure File structure

File structure for all files included in the CMake build:
File structure for all files included in the CMake RE build:

.
├── CMakeLists.txt
├── cmake
│ ├── Options.cmake
│ ├── Version.cmake
│  └── toolchains
│  └── aarch64_linux_toolchain.cmake
│ └── Version.cmake
├── environments
│ ├── linux-ubuntu-2404-aarch64-linux-gnu.pkr.js
│  └── linux-ubuntu-2404-aarch64-linux-gnu.cmake
├── examples
│  └── CMakeLists.txt
├── src
Expand Down Expand Up @@ -539,6 +540,15 @@ To build libraries, examples and tests:
cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DARM_COMPUTE_ENABLE_OPENMP=1 -DARM_COMPUTE_BUILD_EXAMPLES=1 -DARM_COMPUTE_BUILD_TESTING=1
cmake --build build -j32

If you want to speed-up the build you can run it accelerated with remote
execution and caching with a RE-API build cluster (CMAKE_TOOLCHAIN_FILE
is mandatory to specify the environments in which the builds will be
distributed, read more in the [cmake-re environments documentation](https://tipi.build/documentation/0400-environments)):

export RBE_service=<engflow-rbe-cluster>:443
cmake-re -S . -B build -DCMAKE_TOOLCHAIN_FILE=environments/linux-ubuntu-2404-aarch64-linux-gnu.cmake
cmake-re --build build -j500 --distributed

@section S1_9_fixed_format Building with support for fixed format kernels

@subsection S1_9_1_intro_to_fixed_format_kernels What are fixed format kernels?
Expand Down
1 change: 1 addition & 0 deletions environments
Submodule environments added at e57875