Repository navigation
Conversation
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
📒 Files selected for processing (2)
Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 11 remain after this review. 📝 SummarySummary by CodeRabbit
WalkthroughMagpieTTS and NanoCodec now attempt integrated-GPU initialization after GPU initialization fails. The existing CPU fallback remains. The integrated-GPU attempt is skipped when CPU is forced. ChangesTTS backend fallback
Priority: ➖ Normal Estimated code review effort: 2 (Simple) | ~10 minutes Change: Bug fix Merge Risk: ⚪ Minimal · up to The change adds an integrated-GPU attempt before the existing CPU fallback. No actionable merge-blocking risk is established by the available evidence. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Signed-off-by: hsuanguo <hsuan.guo@gmail.com>
dbaab03 to
864559c
Compare
|
| if (!model.backend) { | ||
| model.backend = ggml_backend_init_by_type(GGML_BACKEND_DEVICE_TYPE_IGPU, nullptr); |
There was a problem hiding this comment.
IGPU allocation prevents CPU fallback
If an integrated GPU initializes but lacks enough memory for the model tensors, loading returns an error instead of trying the CPU backend. NanoCodec has the same path. Either failure stops synthesizer creation, even though the CPU fallback could have loaded the model. Retry loading on CPU when IGPU allocation fails, or check capacity before selecting the IGPU.
|
Can I know what is the hw platform you are trying to deploy this on? |
Hi, it's Jetson Orin on Jetpack 7.2 |
|
Confirming this on a second platform: DGX Spark (GB10, CUDA 13.0, sm_121). One more site has the same check: I've opened #65 which carries your commit unchanged plus that third hunk, so the fix is complete in one PR — happy to drop mine to just the const auto dev_type = device ? ggml_backend_dev_type(device) : GGML_BACKEND_DEVICE_TYPE_CPU;
if (!device || (dev_type != GGML_BACKEND_DEVICE_TYPE_GPU && dev_type != GGML_BACKEND_DEVICE_TYPE_IGPU)) {@anand-nv — hardware here is DGX Spark; the Jetson Orin report above and this one are the same root cause ( |
…ocal-transformer mirror (extends #60) (#65) * fixed tts loaders on igpu Signed-off-by: hsuanguo <hsuan.guo@gmail.com> * fix(tts): accept integrated GPU devices for the CUDA local-transformer mirror ggml reports unified-memory NVIDIA parts (DGX Spark GB10, Jetson) as GGML_BACKEND_DEVICE_TYPE_IGPU. With the loader fix for MagpieTTS and NanoCodec (#60) the model now gets a CUDA backend on these devices, but magpietts_model_init_local_transformer_copy() still required the discrete GPU type, so --tts.lt-fp32 with --tts.lt-backend cuda (or auto) failed with "cannot create CUDA local-transformer mirror from a non-GPU model". Accept IGPU there too, matching src/runtime/ggml/backend.cpp. Verified on DGX Spark (GB10, CUDA 13.0, sm_121): Magpie v2607 + NanoCodec on CUDA0, local-transformer mirror created on CUDA0 at fp32 (61 tensors), first audio 29-37 ms, RTF 0.05-0.08; previously ~6 s per sentence on CPU. Signed-off-by: Femo <femoalaofin@gmail.com> * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Signed-off-by: hsuanguo <hsuan.guo@gmail.com> Signed-off-by: Femo <femoalaofin@gmail.com> Co-authored-by: hsuanguo <hsuan.guo@gmail.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
|
#65 includes your fixes. Closing this PR. |
Got this error:
Add an IGPU initialization attempt after discrete-GPU initialization fails, before the existing CPU fallback, in both MagpieTTS and NanoCodec.