Add native K/M/RR inference engines, HIP kernels, replay and validation harnesses, and Windows DLSS setup and runtime support. Include GPU profiling tools, build and packaging scripts, platform integration patches, and implementation documentation.
23 lines
1.4 KiB
Bash
23 lines
1.4 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
OUT="${1:-$ROOT/build/native-engine}"
|
|
CXX="${CXX:-g++}"
|
|
mkdir -p "$OUT"
|
|
# The native HIP network (hip_net.h) is shared by both runners when ROCm is installed; without it they fall back
|
|
# to the engine's own Vulkan network. The library itself never links HIP.
|
|
ROCM="${D4R_ROCM_DIR:-/opt/rocm}"
|
|
HIP=()
|
|
if [[ -f "$ROCM/include/hip/hip_runtime_api.h" ]]; then
|
|
HIP=(-DD4R_ENGINE_HIP "$ROOT/engine/hip_net.cpp" -I"$ROCM/include" -L"$ROCM/lib" -lamdhip64 "-Wl,-rpath,$ROCM/lib")
|
|
fi
|
|
"$CXX" -std=c++17 -O3 -Wall -Wextra -Wno-missing-field-initializers -fPIC -shared \
|
|
"$ROOT/engine/runtime.cpp" "$ROOT/engine/game.cpp" "$ROOT/engine/game_m.cpp" "$ROOT/engine/game_rr.cpp" -lvulkan -o "$OUT/libd4r_engine.so"
|
|
"$CXX" -std=c++17 -O3 -Wall -Wextra -Wno-missing-field-initializers \
|
|
"$ROOT/engine/replay.cpp" "${HIP[@]}" -L"$OUT" -ld4r_engine -lvulkan '-Wl,-rpath,$ORIGIN' -o "$OUT/d4r-k"
|
|
"$CXX" -std=c++17 -O3 -Wall -Wextra -Wno-missing-field-initializers \
|
|
"$ROOT/engine/replay_m.cpp" "${HIP[@]}" -L"$OUT" -ld4r_engine -lvulkan '-Wl,-rpath,$ORIGIN' -o "$OUT/d4r-m"
|
|
"$CXX" -std=c++17 -O3 -Wall -Wextra -Wno-missing-field-initializers \
|
|
"$ROOT/engine/replay_rr.cpp" -L"$OUT" -ld4r_engine -lvulkan '-Wl,-rpath,$ORIGIN' -o "$OUT/d4r-rr"
|
|
printf 'Built %s, %s and %s\n' "$OUT/d4r-k" "$OUT/d4r-m" "$OUT/d4r-rr"
|