• 0 Posts
  • 629 Comments
Joined 3 years ago
cake
Cake day: June 4th, 2023

help-circle


  • I have a Strix Halo as well and I have it configured to dynamically allocate everything, so I have run some 100GB+ models as well. The OS itself needs way under a GB without UI so you can get pretty close to the 128GB.

    Currently on Fedora, running llama-swap to start the llama.cpp toolboxes by kyuz0, audio.cpp and ComfyUI.

    Qwen3.8-27b is my favorite model right now for most things, still playing around with Qwen3.8-Flash-Next but not quite there yet.

    Gemma4-31b is also really good with languages and natural writing but I prefer Qwen3.8 for anything programming or logical.








  • You need to use MTP (Multi token prediction) to get acceptable speeds on a Strix Halo. On llama.cpp you just need to add --spec-type draft-mtp --spec-draft-n-max 3 -np 1 to your arguments.

    You should see around 15-20 t/s in coding tasks at Q8, which will still be much slower than Qwen3-Coder-Next-UD-Q8 since it’s 27b active parameters instead of 3b.

    As for Q8 vs BF16, it usually makes barely to no difference in quality. Speed is higher on Q8 though. Still testing with 3.8 since it just released.





  • Yes. Generally, the larger the model, the more knowledge they have.

    However, knowledge is not everything, 27b (even 3.6) is much better than Qwen 3.5 at calling tools and general programming.

    27b is also a dense model (27b parameters are active at the same time) while 122b is a MoE model with just 10b active parameters. Usually this makes 27b much smarter at understanding complex situations.

    I would recommend trying both and seeing which performs better in your tasks. You can also use something like llama-swap to seamlessly swap between them.

    If you need something fast, Qwen3.6-35b is also MoE with 3b active parameters. It is really fast and fairly competent in many fields.

    Gemma-4-31b is another dense model that does really well with languages (translations, summaries, …). There’s not really a one size fits all with local models but with swapping them around you can get some great results, especially on a Framework Desktop where multiple of the smaller ones might fit at the same time.





  • Yay, that’s awesome!

    I needed to do a dotnet dnx 2dog again after your commands to regenerate the build assets but after that the build worked fine, thanks!

    The asterisk: the loading performance of certain scenes and textures isn’t great at all

    To cheer you up: The performance of the regular Godot web version is not all that great either for 3D stuff. It loaded quite quickly on my PC. Throws an error on level load but still works, might just be the shady level loading we did under time pressure.

    PS: Super adorable game idea. That angry beach ball can get bent, though… sheesh. Ey, I’m walkin’ crawlin’ here!

    Glad you liked it! We put a lot of work into this one. :)

    Shame I didn’t see 2dog during the jam but for next time we are equipped to finally ship a web version. Thanks!



  • We started in Forward+ rendering so it is definitely possible that something went wrong when switching to Compatibility renderer. I did a blank test project and everything went fine so it must be something related to the project.

    do you have a public repo with the game jam entry somewhere?

    Yes! It’s open source and I made a branch with the renderer switched to Compatibility and our water shader removed (incompatible with Compatibility renderer). Should be able to just add 2dog right away and run it. (The regular desktop build runs fine)

    You can find it here: https://gitlab.com/gmtk26zbandco/gmtk26-godot-game/-/tree/web-build

    You could also try to create a source map: dotnet publish -c Release -p:WasmEmitSymbolMap=true -p:WasmNativeStrip=false

    I added the source map and the stack trace looks more usable now:

    Full error
    [MONO] /__w/1/s/src/runtime/src/mono/mono/mini/aot-runtime-wasm.c:188 <disabled>
    Mc<@wasm_native_to_interp_GodotSharp_Godot_Bridge_ScriptManagerBridge_CreateManagedForGodotObjectScriptInstance (http://127.0.0.1:8000/_framework/dotnet.runtime.js:3:172284
    dotnet.native.wasm.wasm_trace_logger@:wasm-function[161353]:0x283a3f9
    dotnet.native.wasm.eglib_log_adapter@:wasm-function[148375]:0x2640662
    dotnet.native.wasm.monoeg_g_logv_nofree@:wasm-function[148280]:0x263e7bf
    dotnet.native.wasm.monoeg_g_log@:wasm-function[148282]:0x263e88f
    dotnet.native.wasm.monoeg_g_log_disabled@:wasm-function[148283]:0x263e8c4
    dotnet.native.wasm.mono_wasm_get_interp_to_native_trampoline@:wasm-function[151868]:0x26f0907
    dotnet.native.wasm.ves_pinvoke_method@:wasm-function[147551]:0x261556b
    dotnet.native.wasm.mono_interp_exec_method@:wasm-function[147539]:0x260893b
    dotnet.native.wasm.mono_thread_info_current@:wasm-function[148504]:0x26446fb
    dotnet.native.wasm.interp_throw_ex_general@:wasm-function[147541]:0x26149c6
    dotnet.native.wasm.mono_interp_exec_method@:wasm-function[147539]:0x2608867
    dotnet.native.wasm.interp_runtime_invoke@:wasm-function[147589]:0x261680e
    dotnet.native.wasm.mono_jit_runtime_invoke@:wasm-function[151658]:0x26e159e
    dotnet.native.wasm.do_runtime_invoke@:wasm-function[150592]:0x26aff97
    dotnet.native.wasm.mono_runtime_invoke_checked@:wasm-function[150591]:0x26aff53
    dotnet.native.wasm.mono_runtime_try_invoke_byrefs@:wasm-function[150687]:0x26b5306
    dotnet.native.wasm.ves_icall_InternalInvoke@:wasm-function[149718]:0x268592e
    dotnet.native.wasm.ves_icall_InternalInvoke_raw@:wasm-function[149814]:0x2689e7b
    dotnet.native.wasm.do_icall@:wasm-function[147637]:0x26189f1
    dotnet.native.wasm.do_icall_wrapper@:wasm-function[147549]:0x261538f
    dotnet.native.wasm.mono_interp_exec_method@:wasm-function[147539]:0x2608835
    dotnet.native.wasm.mono_assertion_message_disabled@:wasm-function[148285]:0x263e908
    dotnet.native.wasm.ftnptr_to_imethod@:wasm-function[147548]:0x2615271
    dotnet.native.wasm.mono_interp_exec_method@:wasm-function[147539]:0x2608764
    dotnet.native.wasm.interp_entry@:wasm-function[147626]:0x261817a
    dotnet.native.wasm.interp_entry_static_ret_4@:wasm-function[147665]:0x26198f5
    dotnet.native.wasm.wasm_native_to_interp_GodotSharp_Godot_Bridge_ScriptManagerBridge_CreateManagedForGodotObjectScriptInstance@:wasm-function[161284]:0x2838975)
    dotnet.native.wasm.CSharpScript::_create_instance(Variant const**, int, Object*, bool, Callable::CallError&)@:wasm-function[105210]:0x1bfe612
    dotnet.native.wasm.CSharpScript::instance_create(Object*)@:wasm-function[105221]:0x1c012a3
    dotnet.native.wasm.Object::set_script(Variant const&)@:wasm-function[137662]:0x2419e21
    dotnet.native.wasm.SceneState::instantiate(SceneState::GenEditState) const@:wasm-function[42805]:0xa44c80
    dotnet.native.wasm.PackedScene::instantiate(PackedScene::GenEditState) const@:wasm-function[42808]:0xa46e43
    dotnet.native.wasm.Main::start()@:wasm-function[133508]:0x230c7e8
    dotnet.native.wasm.GodotInstance::start()@:wasm-function[134260]:0x232b9bc
    dotnet.native.wasm.MethodBindTR<bool>::ptrcall(Object*, void const**, void*) const@:wasm-function[137157]:0x23ff93a
    dotnet.native.wasm.gdextension_object_method_bind_ptrcall(void const*, void*, void const* const*, void*)@:wasm-function[87320]:0x14f1f59
    dotnet.native.wasm.do_icall@:wasm-function[147637]:0x26189d3
    dotnet.native.wasm.do_icall_wrapper@:wasm-function[147549]:0x261538f
    dotnet.native.wasm.mono_interp_exec_method@:wasm-function[147539]:0x2608835
    dotnet.native.wasm.interp_runtime_invoke@:wasm-function[147589]:0x261680e
    dotnet.native.wasm.mono_jit_runtime_invoke@:wasm-function[151658]:0x26e159e
    dotnet.native.wasm.do_runtime_invoke@:wasm-function[150592]:0x26aff97
    dotnet.native.wasm.mono_runtime_invoke_checked@:wasm-function[150591]:0x26aff53
    dotnet.native.wasm.mono_runtime_try_invoke_byrefs@:wasm-function[150687]:0x26b5306
    dotnet.native.wasm.ves_icall_InternalInvoke@:wasm-function[149718]:0x268592e
    dotnet.native.wasm.ves_icall_InternalInvoke_raw@:wasm-function[149814]:0x2689e7b
    dotnet.native.wasm.do_icall@:wasm-function[147637]:0x26189f1
    dotnet.native.wasm.do_icall_wrapper@:wasm-function[147549]:0x261538f
    dotnet.native.wasm.mono_interp_exec_method@:wasm-function[147539]:0x2608835
    dotnet.native.wasm.interp_runtime_invoke@:wasm-function[147589]:0x261680e
    dotnet.native.wasm.mono_jit_runtime_invoke@:wasm-function[151658]:0x26e159e
    dotnet.native.wasm.do_runtime_invoke@:wasm-function[150592]:0x26aff97
    dotnet.native.wasm.mono_runtime_try_invoke@:wasm-function[150601]:0x26b0803
    dotnet.native.wasm.mono_runtime_invoke@:wasm-function[150637]:0x26b2ce0
    dotnet.native.wasm.mono_wasm_invoke_jsexport@:wasm-function[161345]:0x2839f50
    createDotnetRuntime/Module._mono_wasm_invoke_jsexport@http://127.0.0.1:8000/_framework/dotnet.native.js:14520:195
    wn@http://127.0.0.1:8000/_framework/dotnet.runtime.js:3:29440
    Vc/<@http://127.0.0.1:8000/_framework/dotnet.runtime.js:3:178845
    Vc@http://127.0.0.1:8000/_framework/dotnet.runtime.js:3:178996
    async*Godot/Module.callMain@http://127.0.0.1:8000/godot.js:70:37
    SafeEngine/start/Engine</</<@http://127.0.0.1:8000/godot.js:894:24
    promise callback*SafeEngine/start/Engine</<@http://127.0.0.1:8000/godot.js:893:25
    SafeEngine/start/Engine<@http://127.0.0.1:8000/godot.js:886:13
    promise callback*start@http://127.0.0.1:8000/godot.js:865:22
    SafeEngine/startGame/Engine<@http://127.0.0.1:8000/godot.js:932:22
    promise callback*startGame@http://127.0.0.1:8000/godot.js:931:8
    @http://127.0.0.1:8000/:146:24
    @http://127.0.0.1:8000/:161:10
    logging.ts:129:25
    

    Thanks for taking the time!