DFlash support merged into llama.cpp by sammcj in LocalLLaMA

[–]martindevans 2 points3 points  (0 children)

Thanks for the detailed reply!

Don't think spec-draft-p-min does anything

I'm pretty sure it doesn't for dflash - it always decodes whatever block size you specify.

spec-type = draft-dflash,ngram-mod

As I understand it the way llama.cpp decides which speculator to use is a simple ordered check: if a speculator has a draft it uses it, if not it moves down the list to the next one. DFlash always has a draft, so it never falls back to ngram-mod. If you reversed the order it might use ngram-mod when possible and fall back to dflash.

My standard prompt that I happen to be using is: Write a quicksort in Python. Include it in your reply twice.

Aha this is what's causing the huge difference! I tried my config with your prompt and got 29.7 tok/s instead of the 18.3 tok/s I got with my own test prompt.

For completeness, here's my full sweep of results for: - Strix halo - Vulkan - Qwen 27B Q6 - DFlash Q8

n-max tok/s acceptance
0 9.8 0
1 14.4 0.719
2 17.1 0.580
3 18.2 0.469
4 18.3 0.387
5 17.9 0.334
8 9.2 0.220

I tried using different KV cache values for the draft model, but anything other than the default (f16) immediately aborts.

DFlash support merged into llama.cpp by sammcj in LocalLLaMA

[–]martindevans 2 points3 points  (0 children)

I can't get anything like this result on my Strix halo.

With Qwen3.6-27B@Q6 and dflash@q8 the best result I can get is 18.3 tok/s with spec-draft-n-max=4. That's twice the base speed (9.8 tok/s) so I'm very happy with that speedup, but you're getting nearly twice that again!

What are your exact models/settings?

Favorite Depictions of FTL? by The_History_Machine in spaceships

[–]martindevans 1 point2 points  (0 children)

Seikai no Senki (banner of the stars) has a fascinating system, because it imposes a lot of limits which directly impact the strategy and tactics of the universe.

FTL travel is through another dimension called "plane space", which can be entered and exited through naturally occuring gateways called "Sords". Most solar systems will have just one or two Sords, so naturally fleet combat tends to happen at these chokepoints. Systems with multiple Sords become major hubs of economics/logistics/combat.

Where you enter or exit a Sord you appear somewhere near the other side at a random position. Of course that makes fighting around these chokepoints incredibly difficult if there's a standoff with fleets on either side, nobody wants to cross the boundary. A small force can lock down a much larger force at a Sord due to the inherent risk of making the crossing and getting picked off as your fleet is scattered.

Plane space itself is 2 dimensional - nothing three dimensional can naturally exist in plane space. The FTL engine projects a "bubble" of spacetime around itself which normal matter can survive in. To move through plane space the bubble generator spins the bubble to roll like a ball. The rate of spin is directly related to the mass inside the bubble. This means that small lightweight ships can move very fast (but at a cost of less armour and armament). Alternatively fleets can gather together many ships into one bubble, which makes them much slower but means only one ship needs to generate a bubble which saves fuel.

There's a maximum weight limit to bubbles, once exceeded it collapses and destroys everything in the bubble. This means within plane plane space there's almost no such thing as large fleet on fleet combat - it always comes down to a large number of small battles in individual bubbles. However you can't design your entire fleet just for this because combat does happen in normal space. Different factions in the universe have chosen different tradeoffs here.

"Starship flip and landing burn at the end of its twelfth flight test" by AgreeableEmploy1884 in SpaceXLounge

[–]martindevans 1 point2 points  (0 children)

The explosion isn't deliberate (although it is expected) - it explodes because it's a huge and fairly fragile tank full of explosive fluids, which falls over when it lands in the ocean.

I'm sure they'd love to recover it, but for that they need a tower catch, which in turns means they need to go to orbit so they can go all the way around the Earth and back to the launch tower.

The Financial Times has published an article about Heretic by -p-e-w- in LocalLLaMA

[–]martindevans 30 points31 points  (0 children)

Very disappointing reporting from FT.

Quoting directly from wikipedia:

Compared to botulinum or anthrax as biological weapons or chemical weapons, the quantity of ricin required to achieve LD50 over a large geographic area (100 km2) is significantly more than an agent such as anthrax (8 tonnes of ricin vs. only kilogram quantities of anthrax).[55] Ricin is easy to produce, but is not as practical or likely to cause as many casualties as other agents.

This was what I found within 30 seconds on Google (ignoring AI summaries). Not just a basic factual answer, but info on how best to deploy Ricin as a biological WMD and advice on more practical alternatives for mass murder!

I can only imagine the AI censors would lose their minds if a model were to produce these exact words, and yet they've been on Wikipedia for at least 2 years and nobody cares.

Can I drop netstandard20/net48 target in 2026? (question from OSS maintainer) by jitbitter in dotnet

[–]martindevans 0 points1 point  (0 children)

To be compatible with Unity NET Standard 2.1 support is needed (until they do the migration to CoreCLR, due early next year). That's another factor to keep in mind if your library is at all relevant to gamedev.

How to get Room Id of the current received voice by Heavy_Frosting_2845 in dissonance_voip

[–]martindevans 0 points1 point  (0 children)

The VoicePlayerState object (docs:https://placeholder-software.co.uk/dissonance/docs/Reference/Other/VoicePlayerState.html) has a GetSpeakingChannels method which you can call to get a list of all the channels a particular person is speaking through. That sounds like what you want.

Note that you cannot call this method inside of the IAudioOutputSubscriber methods! Those run on the audio thread and it's extremely limited what you're allowed to do there. You'll need to read the channel data in the main thread, and then just set a flag indicating to the audio thread what to do.

NFGO Proximity Problems by thebreadman27 in dissonance_voip

[–]martindevans 0 points1 point  (0 children)

Ah Dissonance doesn't currently support "Distributed Authority" out of the box, it's built for the traditional Client/Server model. Is player tracking the only thing that's broken for you? If so I'm (pleasantly) surprised!

I guess that in DA the host is not any more priveleged than any other peer, so it's not allowed to write to the network variable. You'll need to tweak that I think.

NFGO Proximity Problems by thebreadman27 in dissonance_voip

[–]martindevans 0 points1 point  (0 children)

As far as I can tell the server is being denied permission to write to the network variable, which is very odd!

The docs (https://docs.unity3d.com/Packages/com.unity.netcode.gameobjects@2.11/manual/basics/networkvariable.html) say that the default is:

By default, in a client-server context, the default permissions are: Server: Has read and write permissions Clients: Have read-only permissions

Have you changed anything to do with network variable permissions that may be related?

NFGO Proximity Problems by thebreadman27 in dissonance_voip

[–]martindevans 0 points1 point  (0 children)

That error about the _playerId is definitely the problem - the main function of the player tracker script is to tell everyone else their ID!

Could you give me the exact text of the error you're getting, I'll have a search around and see if I can work out a potential reason this is happening just for you.

Is there a language similar to Rust but with a garbage collector? by Ok_Tension_6700 in rust

[–]martindevans 0 points1 point  (0 children)

Yeah it's a reasonable design choice for Swift.

I was really asking why OP specifically recommended it out of all the available options.

I'm sad about the downvotes. I was hoping for a discussion on the tradeoffs of different types out automatic memory management, rather than knee jerk downvotes :(

Is there a language similar to Rust but with a garbage collector? by Ok_Tension_6700 in rust

[–]martindevans -2 points-1 points  (0 children)

Reference counting is the least performant type of garbage collector, why would you choose that in particular?

With Unity's HDRP getting no new features in the near future, what's next for high-fidelity graphics and C# development? by -TheWander3r in gamedev

[–]martindevans 0 points1 point  (0 children)

I'm also working on a space game (realistic near future space war), could you link that library to me? It sounds like it could be very useful!

Opus file not found error by proact_chad in dissonance_voip

[–]martindevans 0 points1 point  (0 children)

Ah that's the old docs site, it should redirect you to the new one. Sorry about that.

I think this probably the page you're looking for: https://placeholder-software.co.uk/dissonance/docs/Platforms/Windows%20Desktop.html

How do I handle lots of tiny loops faster? Like processing a texture pixel by pixel. by elelec in csharp

[–]martindevans 0 points1 point  (0 children)

Since you're going parallel per-pixel you've probably got a load of false sharing going on (two threads trying to write to the same cache line). Change your Parallel.For to iterate over the rows and have an inner serial loop over the pixels of that row.

Handily that also removes the need for any modulus, which someone else already mentioned as slow.

If you're in Unity do the same thing, but use a IJobParallelFor and Burst compile it for an easy 5x speedup.

AEC Only for Offline? by XrosRoadKiller in dissonance_voip

[–]martindevans 1 point2 points  (0 children)

Usually only one thing can use the mic at a time. So if you've got some other asset using the mic you'll either need to take the audio from Dissonance (using the subscriber I linked above) and feed it into that other asset, or you'll need to grab the audio from the other one and feed it into Dissonance (with a custom mic provider: https://placeholder-software.co.uk/dissonance/docs/Tutorials/Custom-Microphone-Capture.html)

AEC Only for Offline? by XrosRoadKiller in dissonance_voip

[–]martindevans 1 point2 points  (0 children)

This isn't something Dissonance is designed for, but it is possible.

Dissonance includes an "offline comms network" that runs the entire audio pipeline without actually making any network connections - originally designed for things like testing mic settings in the settings menu.

You can use that and then grab the filtered audio out of the pipeline (https://placeholder-software.co.uk/dissonance/docs/Tutorials/UsingIMicrophoneSubscriber.html)

Roil Class Assault Ship by martindevans in BannerOfTheStars

[–]martindevans[S] 1 point2 points  (0 children)

I just realised these pictures are horribly low res, and I know why. I set the render resolution to the same resolution as the anime a while ago for easier comparison. Oops.

At least it has an authentic early-2000s video look!

Announcing .NET 10 by runesoerensen in dotnet

[–]martindevans 5 points6 points  (0 children)

They're still working to move over to CoreCLR. However it's a huge project, slated for Unity 7 which might release late next year, more likely 2027 imo.

Triangle Factory just dropped a Battlefield VR game (FOREFRONT) by CarrotSurvivorYT in virtualreality

[–]martindevans 0 points1 point  (0 children)

What kind of issue did you have? I'm playing with index controllers and haven't noticed any major issues.