make gpr update
This commit is contained in:
@@ -60,7 +60,7 @@ controls plus a pixel-identical live plot through an embedded web UI.
|
||||
|
||||
| Path | Contents |
|
||||
| --- | --- |
|
||||
| `data_acq_and_processing/` | C++ pipeline: `sweep_orchestrator/`, `preprocessing/`, `processing/` (including `locator/`), shared `common_cpp/` (config, IPC rings), and vendored `third_party/` (Eigen, nlohmann/json). |
|
||||
| `data_acq_and_processing/` | C++ pipeline: `sweep_orchestrator/`, `preprocessing/`, `processing/` (including `locator/`), shared `common_cpp/` (config, IPC rings), the vendored `gpr_cpp/` C++/CUDA 3D SAR library, and vendored `third_party/` (Eigen, nlohmann/json). |
|
||||
| `python_app/` | Python application: `gui/`, `orchestration/` (process supervisor, shared-memory readers, config), `hardware_full/` (device drivers and services), `webui/`, `storage/`, `models/`, `workflows/`, `scripts/` (producers and tools), and `tests/`. |
|
||||
| `run_config_examples/` | Ready-made configuration profiles, one per hardware setup. |
|
||||
| `deploy/` | systemd daemon installer for Raspberry Pi appliances. |
|
||||
@@ -75,12 +75,12 @@ controls plus a pixel-identical live plot through an embedded web UI.
|
||||
- A C++20 compiler and `make` — Eigen and nlohmann/json are vendored, so no extra C++ dependencies are needed.
|
||||
- **Python 3.10 or newer**, in a virtual environment.
|
||||
- For the `sar3d` processor (3D SAR): an NVIDIA GPU with the driver installed
|
||||
(`libcuda`) and the external `gpr_cpp` library from the VNA_AlGo project. It
|
||||
must be built **before** `make` (see below); its location is configurable via
|
||||
the `GPR_CPP_DIR` make variable (default `$HOME/Documents/VNA_AlGo/gpr_cpp`).
|
||||
CUDA headers/libnvrtc are taken from the pip `nvidia-*` packages in the
|
||||
VNA_AlGo venv when present, otherwise from the system toolkit at
|
||||
`/usr/local/cuda` (Jetson/JetPack, apt `cuda-toolkit`).
|
||||
(`libcuda`) and `cmake` (the vendored `gpr_cpp` library at
|
||||
`data_acq_and_processing/gpr_cpp/` builds via its own CMake, invoked
|
||||
automatically by `make`). CUDA headers/libnvrtc are taken from the pip
|
||||
`nvidia-*` packages in this repo's venv (installed by `requirements.txt` on
|
||||
x86_64), otherwise from the system toolkit at `/usr/local/cuda`
|
||||
(Jetson/JetPack, apt `cuda-toolkit`).
|
||||
|
||||
## Build and run
|
||||
|
||||
@@ -90,19 +90,22 @@ From the repository root:
|
||||
python3 -m venv .venv
|
||||
.venv/bin/python -m pip install --upgrade pip
|
||||
.venv/bin/python -m pip install -r requirements.txt
|
||||
# 3D SAR library (external, CMake + NVRTC; CUDA headers come from the pip
|
||||
# nvidia-* packages in the VNA_AlGo venv, or /usr/local/cuda as a fallback):
|
||||
bash ~/Documents/VNA_AlGo/gpr_cpp/build_cmake.sh
|
||||
make # build the C++ binaries into build/bin/
|
||||
```
|
||||
|
||||
To verify the sar3d processor against the VNA_AlGo reference on the recorded
|
||||
`make` also builds the vendored 3D SAR library
|
||||
(`data_acq_and_processing/gpr_cpp/`, CMake + NVRTC — needs `cmake`; CUDA
|
||||
headers come from the pip `nvidia-*` packages in `.venv`, or `/usr/local/cuda`
|
||||
as a fallback).
|
||||
|
||||
To verify the sar3d processor against the gpr_cpp reference on the recorded
|
||||
dataset, build and run the on-demand parity tool:
|
||||
|
||||
```bash
|
||||
make sar3d_parity
|
||||
./build/bin/sar3d_parity <preprocessed_dataset_dir> <center_snapshot_name>
|
||||
# compare the printed peak/argmax with gpr_cpp's ./build/standalone_bp on the same arguments
|
||||
# compare the printed peak/argmax with
|
||||
# ./data_acq_and_processing/gpr_cpp/build/standalone_bp on the same arguments
|
||||
```
|
||||
|
||||
Run the desktop GUI:
|
||||
@@ -127,18 +130,14 @@ that pin the stock `./start.sh` provisioning works; the extra steps are only
|
||||
for the CUDA-backed `sar3d` processor:
|
||||
|
||||
```bash
|
||||
# 1. gpr_cpp against the JetPack system CUDA (no pip nvidia-* packages needed):
|
||||
git clone <VNA_AlGo repo> ~/Documents/VNA_AlGo
|
||||
GPR_BUILD_PYTHON=OFF bash ~/Documents/VNA_AlGo/gpr_cpp/build_cmake.sh
|
||||
# build_cmake.sh falls back to /usr/local/cuda automatically; override with
|
||||
# CUDA_INC=... CUDA_LIB=... if the toolkit lives elsewhere.
|
||||
|
||||
# 2. copy the replay dataset (for dataset-replay profiles) and point
|
||||
# 1. copy the replay dataset (for dataset-replay profiles) and point
|
||||
# radar.replay.dataset_dir in the profile at the local copy — the path in
|
||||
# run_config_examples/*.json is machine-specific.
|
||||
|
||||
# 3. normal launch; make picks up /usr/local/cuda when the VNA_AlGo venv has
|
||||
# no pip nvidia-* packages:
|
||||
# 2. normal launch; the vendored gpr_cpp builds against the JetPack system CUDA
|
||||
# (requirements.txt installs no pip nvidia-* packages on aarch64, and
|
||||
# build_cmake.sh falls back to /usr/local/cuda automatically; override with
|
||||
# CUDA_INC=... CUDA_LIB=... if the toolkit lives elsewhere):
|
||||
./start.sh --profile run_config_examples/run_config_replay_vna.example.json
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user