Unlike the cache line size that is known, you cannot predict how the DRAM address bits are mapped to CPU or GPU addresses and which is the page size of the DIMMs that happen to be used.
Matching the DRAM characteristics influences much less the performance of a linear algebra algorithm than matching the cache line size and the sizes of the L1 and L2 cache memories.
If you really want to tune an algorithm for the maximum performance that can be achieved on a particular computer, you must use an automatic tuning method, which runs benchmarks of that algorithm varying all matrix layout parameters until finding optimum values. An example of how this is done is provided by the ATLAS library that implements the BLAS API.
Such a library tuned for a given computer should be then used only for that computer.
Yes.. And no, you can inspect and measure the SDRAM component, at runtime, to best determine how object sizes will be allocated.. Is kind of what I was getting at, and have spent the last month implementing ;)
Something about that page just makes my brain implode while trying to read it on my iPhone..
Sounds super interesting, but grey matter just doesn’t function while looking at it..
Coming back to say I was completely wrong, it’s NOT fully justified, it’s just very odd! Luc was right, the word and line spacing is quite challenging.
I don’t know how you remember that considering it doesn’t.. I’m as rabid a 6502 fanboy as you might meet (and have been programming them for some 40 years or so), but that’s not a competition it wins, all 6502 coders know that ;)
We think it does because usually the 6502 machines have oodles of (ab)useable hardware ;)
Per clock cycle, the 6502 could do a lot more compared to the Z-80. For instance, a 6502 can read from memory on every cycle, so it can execute one instruction while fetching the next. A NOP takes four cycles to complete on a Z-80 and only two on a 6502. The Z-80 also has a 4-bit ALU and has to operate on 8 bits on two passes. Finally, another very clever thing with the 6502 is the single byte addressing, which kind of gives it 256 “registers”. Of course, it has a single byte stack pointer, which makes languages like C or PASCAL a terrible match for it. Z-80s on the other hand have much more complex instructions, which make Z-80 code denser, something very important in those days.
I’m curious about this.. I’m in the middle of nowhere, 2 miles from nearest mast and home internet is a Zyxel NR5103E 5G Router on Three.. I get near as dammit 1Gb down/50Mbps up with 20ms ping, for £15 a month..
As someone who was a 30+ year 10cup (MokkaPot) a day consumer.. To someone who got Graves Disease, and had to take Carbimazole to calm my rampant Thyroids effects, and the discovery that Carbomazole+Caffeine == feeling very ill..
On the day I realised why I felt so ill in my stomach all the time, 30 mins after taking drugs, I went caffeine free, cold turkey..
There was no withdrawal at all.. I slept marginally better, but it’s questionable..
Years later, I sleep even better now my Thyroid is gone ( no more Carbimazole) and back on 10+ cups a day..
I was with you until I saw your downright brutish treatment of the Audioengine A2+ speakers..
Poor things, you even bought them stands! For what ? To aim that lovely HF at the back of your monitor ?
You brute!
Ha! You’re totally right, I feel bad about this most days!
I haven’t worked out a decent answer yet - part of the complication is the desk is sit/stand so if they don’t move with it, it gets weird when I stand up.
Apart from audio world high monitor stands, not much you can do.. I’ve been adding to basket/removing from basket that particular monitor for months, but speaker placement is always abort, abort, abort! I’m an Audio programmer, and headphones get tiring, I like the air interface.. That said, I have just ordered a VideoMic Go II based upon your article ;)
There are some laptop desk arms that you could use to extend them out to either side. If you search on amazon you can find a bunch. I use the one that is only articulated in one direction (not the fancy ones). Works great.