Host Prerequisites#
This guide explains how to prepare an Ubuntu host for a native build and run of this project. If you only want to validate the project, choose the published Docker image in the Docker Workflow README on GH; after installing Docker Engine and the host driver packages, you can skip the native dependency installation and local build steps below.
Supported Environment#
Component |
Version |
|---|---|
Base OS |
Ubuntu 24.04 |
oneAPI |
|
Custom OpenVINO |
|
Intel GPU compute runtime |
|
Intel Graphics Compiler |
|
GMM |
|
Level Zero loader |
|
Intel NPU driver |
|
xpu-smi |
|
Boost |
|
OpenCL-SDK |
|
1. Before You Start#
Use Ubuntu 24.04 x86_64.
Make sure
sudois available.Expect at least one Intel GPU.
If the driver script upgrades the kernel or installs NPU packages, reboot before continuing.
Run all commands from the deployment project root unless noted otherwise.
3. Optional: Validate With The Published Docker Image#
If you only need a smoke test of the project, install Docker Engine and Docker Compose by following https://github.com/open-edge-platform/edge-ai-suites/blob/main/metro-ai-suite/sensor-fusion-for-traffic-management/intermediate-fusion/deploy/docker/README_Docker.md, then use the published image:
docker pull intel/tfcc:bevfusion
bash autotest_docker.sh --image intel/tfcc:bevfusion
The published image keeps the intel/tfcc:bevfusion name after pull. If you want the shorter local tag used by some helper defaults, add it yourself:
docker tag intel/tfcc:bevfusion tfcc:bevfusion
To open an interactive shell in the published image:
bash docker/run_docker.sh intel/tfcc:bevfusion
If this container workflow is sufficient, you do not need to continue with the native dependency installation below.
4. Native Host Build: Install Project Dependencies#
bash install_project_related_libs.sh
The script installs the build toolchain, runtime libraries, Boost, oneAPI, OpenCL-SDK, and custom OpenVINO under /opt/intel/openvino.
Useful environment variables:
USE_SYSTEM_BOOST=1: use Ubuntu Boost packages.SKIP_ONEAPI=1: skip oneAPI installation when it is already present.SKIP_OPENVINO=1: skip the custom OpenVINO installation when it is already present.SKIP_OPENCL_SDK=1: skip the OpenCL-SDK build.
5. Source The Runtime Environment#
Use the following commands in each new shell:
source /opt/intel/oneapi/setvars.sh
source /opt/intel/openvino/setupvars.sh
6. Build The Project#
bash build.sh
The build output is written to build/.
7. Check The Dataset Layout#
Expected layout:
<dataset_root>/
calib/
image_2/
label_2/
velodyne/
Supported input file types:
image_2:.jpg,.jpeg,.png, or encoded.binvelodyne:.binor.pcdcalib:.txtlabel_2:.txt
Encoded .bin image files are supported by the loader.
8. Smoke Test The Native Environment#
From build/:
./test_bev_pool 1 5
./bevfusion ../data/v2xfusion/dataset
Typical successful output includes:
Using discrete OpenCL GPU (in-order queue): Intel(R) Arc(TM) B580 Graphics
=== BEVPool Latency ===
Avg: 0.693 ms
Detected 0 boxes
[perf] frames=1, avg_lidar=7.463 ms, avg_camera_bev=8.703 ms, avg_fusion+post=3.979 ms, avg_total=12.685 ms
The bundled release models are dummy weights, so Detected 0 boxes is expected in this smoke check. Use your own exported weights if you need meaningful detections.
If the native smoke tests pass, continue with GSG.md and Testing.md.