Stuff Michael Meeks is doinghttps://meeksfamily.uk/~michael/blog/index.atomMichael Meekshttps://meeksfamily.uk/~michael/blog/index.atommichael.meeks@collabora.comCopyright 1999-2015 Michael Meeks
PyBlosxom http://pyblosxom.sourceforge.net/ 1.4.3 01/10/2008
2024-03-12T14:03:11Z2024-03-12 Tuesdayhttps://meeksfamily.uk/~michael/blog/2024/03/12/2024-03-122024-03-12T14:03:11Z2024-03-12T14:03:11Z<ul> <!-- -->
<li>
Up earlyish, finished slides; got to the conference,
caught up with lots more people - good to get deeper on lots
of technology, as well as getting some great feedback around
COOL.
</li>
</ul>
2024-03-11 Mondayhttps://meeksfamily.uk/~michael/blog/2024/03/11/2024-03-112024-03-11T21:00:00Z2024-03-11T21:00:00Z<ul> <!-- -->
<li>
Up at 1:40am, drove to Gatwick, plane to Geneva.
Spent quite some time trying to accelerate the CPU version
of the RLE code amusingly without success: fun.
</li>
<li>
Off to CERN; arrived in time for <a
href="https://www.cs3community.org/">CS3</a> - great to
meet lots of old friends, tons of customers & partners.
Good stuff.
</li>
<li>
Enjoyed talks, tour of some of the facilities, more
talks, largest survey response so far of users shows that
(for Office tools) - Collabora is (just) at the top of for
the 1st year; encouraging.
</li>
<li>
Dinner bits in the evening, and tram back to the
hotel with some friends.
</li>
</ul>
2024-03-10 Sundayhttps://meeksfamily.uk/~michael/blog/2024/03/10/2024-03-102024-03-10T21:00:00Z2024-03-10T21:00:00Z<ul> <!-- -->
<li>
All Saints, played in the music group; back for
a pizza lunch with J. picked up babes from their camp,
sorted out the evening service; relaxed a bit.
</li>
<li>
Played guitar for the evening service, Florence
spoke, good time; home to rest.
</li>
</ul>
2024-03-09 Saturdayhttps://meeksfamily.uk/~michael/blog/2024/03/09/2024-03-092024-03-09T21:00:00Z2024-03-09T21:00:00Z<ul> <!-- -->
<li>
Up lateish, J. for an art session at All Saints,
plugged away at tidying up, mending alarm sensor.
</li>
<li>
Wrote a small <a
href="https://github.com/CollaboraOnline/online/blob/master/tools/Benchmark.cpp">benchmark</a> tool to further optimize
our RLE code-paths for some real-world <a
href="https://github.com/CollaboraOnline/benchmark">tiles</a>;
generated some numbers.
</li>
<li>
Out for a walk with J. to Lode (not the LibreOffice
tool of the same name) - managed to navigate lots of mud,
and enjoy the scenery.
</li>
<li>
Home; poked at perf results and with an hour or
so of chewing got another 17% off the Avx2 RLE
<a href="https://github.com/CollaboraOnline/online/blob/master/kit/DeltaSimd.c#L97">code</a>:
<blockquote><pre><code>// load and arrange 8x pixel chunks & a shifted version
vpermd %ymm0,%ymm1,%ymm5
vmovdqu 0x20(%rdi,%r10,4),%ymm0
vpand %ymm5,%ymm2,%ymm5
vpermd %ymm0,%ymm3,%ymm6
vpand %ymm4,%ymm6,%ymm6
vpor %ymm5,%ymm6,%ymm5
// compare and turn that into a bitmask of duplicates
vpcmpeqd %ymm0,%ymm5,%ymm5
vmovmskps %ymm5,%eax
// store that bitmask (win was here)
mov %al,(%rcx)
mov %eax,%r11d
not %r11b
shl $0x5,%rax
// pack only new pixels into memory
vmovdqa (%rax,%r9,1),%ymm5
vpermd %ymm0,%ymm5,%ymm5
vmovdqu %ymm5,(%r8)
movzbl %r11b,%eax
popcnt %rax,%rax
lea (%r8,%rax,4),%r8
add $0x8,%r10
inc %rcx
cmp $0xf8,%r10
jb // loop to top
</code></pre></blockquote><br/>
Turns out using the CPU's built-in 8bit writing for the 8 pixel
mask is far more efficient than masking it into 64bit registers
which is cute. Should really simplify the RLE setup and
shifting part with _mm256_maskz_permutexvar_epi32 at some
stage, and really ought to 256bit align the memory too
at some stage. Seems it is 4.5x faster - than the not entirely
naive C version which chews 64 pixel chunks thus:
<blockquote><pre><code>// simplified inner loop for 64 pixel chunks
for (; bitToSet; ++x, bitToSet <<= 1)
{
if (from[x] == lastPix)
rleMask |= bitToSet;
else
{
lastPix = from[x];
scratch[outp++] = lastPix;
}
}
</code></pre></blockquote><br/>
</li>
<li>
Out for dinner in town with J.
</li>
</ul>
2024-03-08 Fridayhttps://meeksfamily.uk/~michael/blog/2024/03/08/2024-03-082024-03-08T21:00:00Z2024-03-08T21:00:00Z<ul> <!-- -->
<li>
Mail, catch up call with Lily, worked on role
descriptions, prepped for and gave a Tea Time Trainig
(TTT) on various architectural directions for online.
</li>
<li>
Plugged away at a bit of hacking in the
afternoon; calmed down some over-enthusiastic warnings,
chased down some corner-cases.
</li>
<li>
Babes off to Buckden Towers for a StAG camp.
</li>
</ul>
2024-03-07 Thursdayhttps://meeksfamily.uk/~michael/blog/2024/03/07/2024-03-072024-03-07T21:00:00Z2024-03-07T21:00:00Z<ul> <!-- -->
<li>
Mail chew; tech planning call, COOL community
call, admin, marketing strategy call, caught up with
action items. Got some more background save pieces done.
Prayer meeting in the evening.
</li>
</ul>
2024-03-06 Wednesdayhttps://meeksfamily.uk/~michael/blog/2024/03/06/2024-03-062024-03-06T21:00:00Z2024-03-06T21:00:00Z<ul> <!-- ljm -->
<li>
Up early, out for a run, mail chew; call with
no-one in it.
</li>
<li>
Finally manged to reset my yale home alarm
password - it seems the trick is to (somehow) intuit that
the web interface is an entirely different thing to the
mobile control app despite looking the same; hey ho.
</li>
</ul>
2024-03-05 Tuesdayhttps://meeksfamily.uk/~michael/blog/2024/03/05/2024-03-052024-03-05T21:00:00Z2024-03-05T21:00:00Z<ul> <!-- -->
<li>
Mail, planning call, partner call, got to a bit of log
and code reading with Neil around a unit test failure.
</li>
</ul>
2024-03-04 Mondayhttps://meeksfamily.uk/~michael/blog/2024/03/04/2024-03-042024-03-04T21:00:00Z2024-03-04T21:00:00Z<ul> <!-- -->
<li>
Mail chew, Calc stand-up, mail backlog catch-up,
marketing content call, several 1:1's.
</li>
</ul>
2024-03-03 Sundayhttps://meeksfamily.uk/~michael/blog/2024/03/03/2024-03-032024-03-03T21:00:00Z2024-03-03T21:00:00Z<ul> <!-- lm -->
<li>
All Saints - family service; Pizza lunch with David,
bit of gardening - spring is slowly budding; slugged and
watched variously.
</li>
</ul>
2024-03-02 Saturdayhttps://meeksfamily.uk/~michael/blog/2024/03/02/2024-03-022024-03-02T21:00:00Z2024-03-02T21:00:00Z<ul> <!-- -->
<li>
Up lateish; drove to Kennilworth for L's birthday
party; lots of small boys to chase around the new kitchen,
and peg & so on; fun. Caught up with M&D, R&A,
and David&Gillian, good to see everyone. Chris &
Lizzy there too.
</li>
<li>
Home lateish; slugging action, bed early.
</li>
</ul>
2024-03-01 Fridayhttps://meeksfamily.uk/~michael/blog/2024/03/01/2024-03-012024-03-01T21:00:00Z2024-03-01T21:00:00Z<ul> <!-- ljm -->
<li>
Earlyish meeting until lunch; on to an openDesk event,
lots of useful findings - and really great to see everyone in
person and catch up somewhat.
</li>
<li>
Hacked a bit on the plane back, drove home, tired.
</li>
</ul>
2024-02-29 Thursdayhttps://meeksfamily.uk/~michael/blog/2024/02/29/2024-02-292024-02-29T21:00:00Z2024-02-29T21:00:00Z<ul> <!-- -->
<li>
Drove to Stansted; caught up with Gokay; rather
delayed flight. Hacked up a tool to annotate unshared pages
with names of pointers into shared libraries to better
unwind the origin of dirtied pages.
</li>
<li>
Out for dinner with some friends at the <i>Long March
Canteen</i> - which despite the name thankfully featured (nice)
food.
</li>
</ul>
2024-02-28 Wednesdayhttps://meeksfamily.uk/~michael/blog/2024/02/28/2024-02-282024-02-28T21:00:00Z2024-02-28T21:00:00Z<ul> <!-- ljm -->
<li>
Mail chew, interview & offer with Miklos.
</li>
<li>
Into Cambridge with J. <!-- Parkside -->, on to
the Moller Institute for a tour of the rather lovely
<a href="https://www.collaboraoffice.com/cool-days-2024/">COOL
days</a> venue.
</li>
<li>
Back; sales catch-up with Eloy, sync with Caolan.
</li>
</ul>
2024-02-27 Tuesdayhttps://meeksfamily.uk/~michael/blog/2024/02/27/2024-02-272024-02-27T21:00:00Z2024-02-27T21:00:00Z<ul> <!-- -->
<li>
Mail chew, planning call, took car to have tires
changed, bought J, some flowers on the way back. Patch
review, sync with Neil. J. took N. back to university,
worked late.
</li>
<li>
Started CofE <i>Domestic Violence</i> safeguarding
training; sad its necessary really.
</li>
</ul>
2024-02-26 Mondayhttps://meeksfamily.uk/~michael/blog/2024/02/26/2024-02-262024-02-26T21:00:00Z2024-02-26T21:00:00Z<ul> <!-- -->
<li>
Took E. to school; bit of a mail backlog to process; started
on it. Call with Calc team; 1:1's with Miklos, Pedro, marketing
content call; more 1:1's, partner call.
</li>
</ul>