release: engine models skip L/M on RDNA2 and render in parallel
RDNA2 has native kernels for K's layers only; L's and M's test frames still compiled their transformer layers with emulated matrix products for most of an hour. The builder now builds e, f, k, k-ldr on gfx103x (detected like the native kernels: D4R_GPU_ARCH, else the KFD node with the most SIMDs); D4R_ENGINE_ALL_MODELS=1 builds L and M anyway. install.sh takes the model list from build-engine-models.sh --list-sr-models and keys the shared cache on it. Models build in alphabetical order (E, F, K, L, M). The first frame renders alone to create the Proton prefix; the rest render at the same time, each model built as soon as its frame is done (ZLUDA compiles in one thread per process). Cold install.sh --yes on a Steam Deck: 185 s.
This commit is contained in:
1 parent
4064117244
commit
916b0d1467
2 files changed
+67
-28
No files matched your search
+5
-3
@@ -167,10 +167,12 @@ if [[ ! -f "$BUILDER" ]]; then
|
||||
[[ "$DO_ENGINE" != 1 ]] || fail "missing $BUILDER (this release has no engine-model builder)"
|
||||
done_msg; exit 0
|
||||
fi
|
||||
models=(rr-d rr-e rr-f k k-ldr m m-ldr l l-ldr e f)
|
||||
# One build serves every game with the same DLLs and builder: the key covers both and the accuracy choice.
|
||||
# the Super Resolution models depend on the GPU (RDNA2 builds no L and M), so the builder lists them
|
||||
models=(rr-d rr-e rr-f $(bash "$BUILDER" --list-sr-models))
|
||||
# One build serves every game with the same DLLs, builder and model set: the key covers them and the accuracy choice.
|
||||
key() { # key EXACT(0|1)
|
||||
{ echo "exact=$1"
|
||||
echo "models=${models[*]}"
|
||||
sha256sum -- "$RUNTIME/nvngx_dlss.dll" "$RUNTIME/nvngx_dlssd.dll" 2>/dev/null | cut -d' ' -f1
|
||||
(cd "$RUNTIME/tools" && find . -type f ! -name '*.pyc' -print0 | LC_ALL=C sort -z | xargs -0 sha256sum); } | sha256sum | cut -c1-16
|
||||
}
|
||||
@@ -193,7 +195,7 @@ if [[ "$DO_ENGINE" == ask ]]; then
|
||||
echo ' + On RDNA2 (Steam Deck) it is the route for DLSS 3'"'"'s CNN presets E and F: those models run without cooperative matrices.'
|
||||
echo ' + Lower latency: the game shows the upscaled result of the frame it just rendered, not an older one.'
|
||||
echo ' + No minute-long freeze while DLSS'"'"'s CUDA kernels compile the first time a model is used.'
|
||||
echo ' - Longer setup, once: building its models takes a minute or two (it renders a test frame per model'
|
||||
echo ' - Longer setup, once: building its models takes a few minutes (it renders a test frame per model'
|
||||
echo ' through GE-Proton) and needs ~300 MB of temporary space. Later installs reuse the models.'
|
||||
echo ' - Slower for K and M on RDNA3; there d4r keeps those two models on its normal path.'
|
||||
echo ' Without it, d4r uses its normal path; anything the engine does not cover uses that path anyway.'
|
||||
|
||||
Reference in new issue
Block a user