#Gleichschaltung is a German word that means “coordination” or “synchronization.”
Gleichschaltung refers to a process of #Nazification designed to turn Germany into a single party state under Hitler and the Nazi Party.
Even children were brought into the Nazification process. Participation in t…
So, tonight's goal is to continue with ngscopeclient performance work.
I started out by doubling the speed of the eye pattern *again* by moving index buffer calculation from CPU to GPU.
Next up is going to be getting the 100baseTX decoder to not be so slow. Right now of the 43 seconds of CPU time in the current 1-minute benchmark, 26.9 is spent sampling the MLT-3 waveform on rising edges of the recovered clock.
The thing is, we already *know* the sample values at the re…
The rest of my family got (m)nexspike a month ago, but for various reasons I was delayed and was given spikevax the other day. I've spent most of the time since then sleeping, and i'm still so very annoyed they gave me the older, worse vaccine tech..
Everyone else had minimal side effects.
🇺🇦 #NowPlaying on KEXP's #PositiveVibrations
Nick Sefakis:
🎵 Mary Jane
#NickSefakis
https://nicksefakis.bandcamp.com/track/mary-jane
https://open.spotify.com/track/26lCkurMcpNsdH09borklb
ngscopeclient v0.1.1 is out! This is the last release in the v0.1.x series and we'll now be starting a lot of major refactoring and backend work in preparation for v0.2.
https://www.ngscopeclient.org/news/2025-12-31-v0p1p1-release.html
As promised: quick demo of ngscopeclient running CDR eye pattern on >800 Msps (2x 50M points @ 8.2 Hz) of live streaming waveform data on an RTX 2080 Ti.
https://www.youtube.com/watch?v=r6uPpITsyhQ
Fun game idea for a very specific crowd: optimization race.
Given a large compute heavy codebase, say ngscopeclient, each player picks a block that they think has significant potential for speedups. Everything is in play from algorithmic restructuring to porting to GPU.
After the time limit the player with the largest percent speedup relative to baseline is declared the winner.
I'm going to have to screen record this, I can't believe I got it working this well.
2x 50M point differential Ethernet waveform into subtract filter, CDR, and eye pattern.
Refreshing at 8.3 Hz. With just a little bit more optimization or faster hardware this will be real time.
Then I can start working on getting protocol decodes to run at full rate too.
Initial experiments on a GPU-accelerated parallel CDR PLL filter.
Fundamentally, the problem is that a PLL is stateful so you can't process any given iteration of it without knowing the previous state. I'm trying to work around that by recognizing that the impulse response of the PLL loop filter tails off to effectively zero after a while, so we can truncate and samples older than that point will not materially affect the output.
What you see here is the first pass of wha…
I think this is progress.
I fixed the typoed atu_unr_limit and now the ATU is working, translating accesses to the 0x1000_0000 AXI space to configuration reads and writes in the PCIe bus.
But the data is always zero. I'm trying to write 0x41410000 to the BAR and it comes out as zeroes, and while the protocol analyzer shows me successfully reading 1327:1c5c which is the VID/PID of my test SSD, it comes out as zero on the AXI side.